javascript - Html DOM 对象未列出属性?

标签 javascript dom

我正在尝试使用以下代码从网页中提取文本:

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/

相关文章:

jquery - Bootstrap 未按预期设置弹出窗口模板

javascript - 检测/监控 DOM 变化的最有效方法?

html - Webkit 背景

javascript - 有人可以告诉我如何将 watchposition() 函数与 getCurrentPosition 一起使用吗?

javascript - 通过 jQuery 的 css 值查找元素

javascript - 如果 CMS 的复选框为 true,则切换文本框

javascript - 如何获得最小高度 CSS 属性?

javascript - 在javascript中查找具有特定文本的DOM元素

javascript - 如何在 JavaScript 中计算对象数组中给定属性的平均值

javascript - 是否有一种相当安全的方法使用 JavaScript 来验证主页?