我有一个非常具体的情况,我不知道这是可能的。 Chrome看到的DOM结构如下所示:
<body>
<div id="1></div>
<div id="div2" style="position: absolute; left: 2px; top: 122px; width: 128px; height: 12px;"></div>
<div id="3"></div>
</body>
因此,具有绝对位置的元素被添加到body元素中。但是,当我尝试用jQuery选择所有身体的孩子时,没有div2
,这是有道理的:
$('body').children() // returns div1 and div3
现在,有没有一种方法可以使用jQuery或纯JS来获取浏览器使用children()或任何其他方法看到的所有元素?在这种情况下,我想要所有3个元素。我不能真正访问网页,我可以注入JS来操纵DOM,所以我正在寻找一个JS解决方案。
答案 0 :(得分:6)
您的代码中有错误:
<div id="1></div>
//--------^
您没有关闭id
。因此,浏览器将其视为单个div,并与第二个div的"
相加。所以如果你正确地给出语法:
$(function () {
alert($("body").find("div").length);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<div id="1"></div>
<div id="div2" style="position: absolute; left: 2px; top: 122px; width: 128px; height: 12px;"></div>
<div id="3"></div>
注意: 我在上面的示例中提供了
find("div")
,因为该代码段会添加更多代码。