我正在尝试使用以下代码从网页中提取文本:
const theHtml = document.children[0];
function showThePage(htmlObject){
for(var key in htmlObject){
console.log(key);
console.log(htmlObject.hasOwnProperty(key));
if(htmlObject.hasOwnProperty(key))
{
if(htmlObject.key.hasOwnProperty('textContent')){
console.log(key.textContent);
}
}
}
}
showThePage(theHtml);
属性/子项发生了一些奇怪的事情。当我通过每个键的名称检查属性时,它永远不会为真(执行永远不会进入if语句)...这意味着htmlObject没有给定键的名称的属性。然而,当我检查 DOM/DevTools 时,属性实际上列在 HtmlObject 上。我错过了什么吗?
最佳答案
您需要使用方括号来访问 htmlObject 上等于 key
值的属性
if(htmlObject[key].hasOwnProperty('textContent')){
// ...
}
就您而言,您希望检查key
的值是否在htmlObject
中。字符串文字” key"
在点符号与 [] 符号的情况下可能等同于 key。
关于javascript - Html DOM 对象未列出属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40009778/