我正在尝试使用以下代码从网页中提取文字:
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上。我错过了什么吗?
答案 0 :(得分:2)
您需要使用方括号来访问htmlObject上的属性,该属性等于key
的值
if(htmlObject[key].hasOwnProperty('textContent')){
// ...
}
在您的情况下,您正在查看天气key
中htmlObject
的值在"key"
字符串文字callback
可能是等效的在点符号vs []表示法的情况下键入。
答案 1 :(得分:1)
考虑使用document.querySelectorAll()
..您可以使用任何jQuery / CSS选择器仅返回要从中提取文本的元素。
var elements = document.querySelectorAll('*');
for ( var i = 0 ; i < elements.length ; ++i ) {
var key = elements[i];
if ( key && key.textContent ) {
console.log(key,key.textContent);
}
}