我正在尝试从facebook dom获取feed内容。
<div role="feed">
所以我这么做了:
querySelectorAll($("div[role='feed']"))
如下所示:get div by role,但它返回undifend结果。我尝试了一些更类似的方法,但仍然没有成功。
有可能获得这些数据吗?谢谢
发布于 2018-05-31 16:12:18
请删除$
。它不是必需的,可能会抛出undefined
错误。你是在页面加载后运行吗?你正在使用.innerHTML
来获取超文本标记语言的内容吗?这对我来说很有效:
<div role="feed">Hello</div>
<script>
console.log(document.querySelector('div[role="feed"]').innerHTML);
</script>
如果在页面加载后没有运行,请将代码放在window
对象的onload
事件中。
你应该这样修改你的代码:
<script>
// Loading script before element.
window.onload = function () {
console.log(document.querySelector('div[role="feed"]').innerHTML);
}
</script>
<div role="feed">Hello</div>
如果你在元素之前加载脚本,这是可行的。
发布于 2018-05-31 16:14:31
使用jQuery,您不需要querySelectorAll()
来获取DOM,您可以使用$("div[role='feed']")
来实现这一点。因为您使用的是querySelectorAll()
,所以它接受必须是有效CSS选择器字符串的字符串;如果不是,则抛出SyntaxError异常。由于您使用了错误的语法,它将返回undefined。
在jQuery中获取div
的内容需要使用text()
函数。text()
获取匹配元素集合中每个元素的组合文本内容,包括它们的后代元素,或者设置匹配元素的文本内容。
console.log($("div[role='feed']").text());
console.log($("div[role='feed']"));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div role="feed">
so i did that:
</div>
https://stackoverflow.com/questions/50619633
复制相似问题