gpt4 book ai didi

javascript - obj.nextElementSibling || obj.nextSibling

转载 作者:太空宇宙 更新时间:2023-11-04 15:52:34 26 4
gpt4 key购买 nike

有测试代码:

<body>
<div id="abc">1</div>
<div>2</div>

<script>
var id = document.getElementById("abc");
var div = id.nextElementSibling || id.nextSibling;
// change order
var div1 = id.nextSibling || id.nextElementSibling;

alert(div.textContent) // alert: 2
alert(div1.textContent) // alert nothing
</script>
</body>

这段代码在chrome浏览器上运行,第一个alert()弹出2,但第二个alert()没有弹出任何内容。为什么?

最佳答案

尝试:

    <div id="abc">1</div><div>2</div> //2, 2
<div id="abc">1</div>x<div>2</div> //2, x

问题是使用 or 时,仅评估条件的第一部分(当为 true 时)。因此,您的第二次调用返回字符串(空格) - 请参阅下面的 nextSibling 方法说明。

也尝试一下这个改变:

alert('"' + div1.textContent + '"') // the second call will return "   " (with also line break inside)
<小时/>

https://www.w3schools.com/jsref/prop_node_nextsibling.asp

The difference between this property and nextElementSibling, is that nextSibling returns the next sibling node as an element node, a text node or a comment node, while nextElementSibling returns the next sibling node as an element node (ignores text and comment nodes).

关于javascript - obj.nextElementSibling || obj.nextSibling,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42995338/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com