Javascript DOM,访问<;李>;使用nextsibling属性的元素 第1项 项目2 第3项 第4项 var secLi=document.getElementById(“secLi”); var sib=secLi.nextSibling; 文件编写(sib); //或//、或//、或//、或//、或//、或//、或 var secLi=document.getElementById(“secLi”); var sib=secLi.nextSibling; document.write((sib.textContent);
我想使用nextSibling属性获取第三个列表(li)项的textnode并写入文档。我知道我可以使用“li.textContent”访问它,但我希望这样 不,我不是在寻找“nextSibling”,我想使用“nextSibling”属性访问“secondli”的“textNode”,这是因为如果我想访问“第三个li”,我必须使用“nextSibling.nextSibling”两次才能访问“第三个li”。(1)第一个“nextSibling”用于“第二个li”的“text node”,第二个“nextSibling”用于“3rd li”。所以我无法使用“next sibling”一次获取“2rd li”的文本节点Javascript DOM,访问<;李>;使用nextsibling属性的元素 第1项 项目2 第3项 第4项 var secLi=document.getElementById(“secLi”); var sib=secLi.nextSibling; 文件编写(sib); //或//、或//、或//、或//、或//、或//、或 var secLi=document.getElementById(“secLi”); var sib=secLi.nextSibling; document.write((sib.textContent);,javascript,html,dom,traversal,nextsibling,Javascript,Html,Dom,Traversal,Nextsibling,我想使用nextSibling属性获取第三个列表(li)项的textnode并写入文档。我知道我可以使用“li.textContent”访问它,但我希望这样 不,我不是在寻找“nextSibling”,我想使用“nextSibling”属性访问“secondli”的“textNode”,这是因为如果我想访问“第三个li”,我必须使用“nextSibling.nextSibling”两次才能访问“第三个li”。(1)第一个“nextSibling”用于“第二个li”的“text node”,第二个
我使用text-fixer.com删除了其他空白和换行符,即使它不起作用。您是否正在寻找
下一代远程登录
<body>
<div id="li-container">
<ul>
<li class="hot">item1</li>
<li id="secLi" class="cool">item2</li>
<li class="cool">item3</li>
<li class="cool">item4</li>
</ul>
</div>
<script language="javascript" type="text/javascript">
var secLi = document.getElementById("secLi");
var sib = secLi.nextSibling;
document.write(sib);
//OR //OR //OR //OR //OR //OR //OR //OR
var secLi = document.getElementById("secLi");
var sib = secLi.nextSibling;
document.write((sib).textContent);
</script>
</body>
您不需要下一个标记,因为它只是列表项之间的空文本。您需要下一个元素(列表项)
请参见li
元素的textnode
节点是2nd li
元素的子元素。
所以代码应该是
var sib=secLi.firstChild.textContent;
文件编写(sib)
@brianvaughn你认为第二种方法有什么错误..你想让item3
写在文档中。对吗?nextSibling和nextElementSibling有什么区别“@amgurup作为nextSibling
属性和nextElementSibling
之间的区别在于,nextSibling将下一个同级节点作为元素节点、文本节点或注释节点返回,而nextElementSibling将下一个同级节点作为元素节点返回(忽略文本和注释节点)。Src:直接取自Mozilla文档:“nextElementSibling只读属性返回紧跟在其父级的子节点列表中指定的元素之后的元素。”“nextSibling只读属性返回紧跟在其父级的子节点列表中指定的节点之后的节点”。因此,在本例中,您需要元素(
),因为下一个节点实际上是文本节点。nextSibling
选择下一个同级节点。elementNode
、commentNode
或textNode
nextElementSibling
选择下一个elementNode
同级节点,该节点具有1
的nodeType
。在代码nextSibling
中,选择一个textNode
,该textNode
包含换行符和其他隐藏字符,这些字符用于格式化标记。如果删除隐藏字符,则nextSibling
选择相同的节点。不,我不是在寻找nextElementSibling,我想使用nextSibling属性访问第二个列表的textNode,这是因为如果我想访问第三个列表项,我必须使用(nextSibling.nextSibling)这是第二个列表的文本节点,它到达第三个列表项
var secLi = document.getElementById('secLi');
secLi.nextSibling; // Is a text node.
secLi.nextElementSibling; // Is the <li> you're looking for, so..
secLi.nextElementSibling.textContent; // Gives you "item3"
secLi.parentElement.childNodes;
// [#text, <li>, #text, <li>, #text, <li>, #text, <li>, #text]