的getElementsByTagName()申请两次不工作
<ul id="nav">
Favorite beverages :
<li> Tea </li>
<li> Coffee </li>
<li> Milk </li>
</ul>
我想从 'UL'的getElementsByTagName()申请两次不工作
Method 1 : It doesn't work
var val = document.getElementsByTagName("ul").getElementsByTagName("li");
console.log(val.length);
Method 2 : It works
var val = document.getElementById("nav").getElementsByTagName("li");
console.log(val.length);
'礼' 的总人数为何方法1不工作?
因为document.getElementsByTagName("ul")
返回与给定标记名称的元素的活的HTMLCollection。
的理解:
element.getElementsByTagName("li")
是有效的方法。
elements.getElementsByTagName("li")
不是一个有效的方法。
var val = document.getElementsByTagName("ul")[0].getElementsByTagName("li");
console.log(val.length);
var val = document.getElementById("nav").getElementsByTagName("li");
console.log(val.length);
<ul id="nav">
Favorite beverages :
<li> Tea </li>
<li> Coffee </li>
<li> Milk </li>
</ul>
编辑来获取文本中ul
但不li
谢谢Sankar Raj。我还有一个问题,如果需要在“ul”标签中找到文本,而不是在“li”中,应该怎么做。上例中的示例如何找到“最喜欢的饮料:” – WeAreRight
@WeAreRight已更新。核实。 – Sankar
您必须指定index.Try下面的代码:
var val = document.getElementsByTagName("ul")[0].getElementsByTagName("li");
console.log(val.length);
<ul id="nav">
\t Favorite beverages :
\t <li> Tea </li>
\t <li> Coffee </li>
\t <li> Milk </li>
</ul>
请检查这些方法的文档。其清楚地说
返回与指定标签名的文件中的所有元素的集合,作为一个NodeList对象的getElementsByTagName()方法。
getElementById()方法返回具有指定值的ID属性的元素。
所以应该
document.getElementsByTagName("ul")[0].getElementsByTagName("li")
'document.getElementsByTagName( “UL”)'返回元件的阵列。所以,'getElementsByTagName'不可用。 – Adapter