确实<;表>;与<;ul>;或<;部门>;当试图收集他们的子标签时?(JavaScript)
我试图创建一个通用JavaScript函数来获取标记中的条目集合。例如: 有清单确实<;表>;与<;ul>;或<;部门>;当试图收集他们的子标签时?(JavaScript),javascript,html,list,html-table,Javascript,Html,List,Html Table,我试图创建一个通用JavaScript函数来获取标记中的条目集合。例如: 有清单 <ul class="collection"> <li>First Entry</li> <li>Second Entry</li> <li>Third Entry</li> </ul> 第一项 第二项 第三条 带divs <div class="collection">
<ul class="collection">
<li>First Entry</li>
<li>Second Entry</li>
<li>Third Entry</li>
</ul>
- 第一项
- 第二项
- 第三条
带divs
<div class="collection">
<div >First Entry</div >
<div >Second Entry</div >
<div >Third Entry</div >
</div>
第一项
第二项
第三条
有桌子
<table class="collection">
<tr>First Entry</tr>
<tr>Second Entry</tr>
<tr>Third Entry</tr>
</table>
第一项
第二项
第三条
以下是我所拥有的:
function getEntry(a)
{
var elementCollection = document.getElementsByTagName('*');
for(var i = 0; i < elementCollection.length; i++)
{
if(elementCollection[i].className.toString() === "collection")
{
var filteredCollection = elementCollection[i].children;
alert(filteredCollection[a].innerHTML);
}
}
}
函数getEntry(a)
{
var elementCollection=document.getElementsByTagName('*');
for(var i=0;i表的行为是否不同,或者我是否做错了什么?是的,您的HTML无效,因为它不包含
元素,所以浏览器会为您插入它,就像表单元格一样
因此,当您进入表
并使用.children[0]
时,您将获得新的
元素,它包含所有
元素,这解释了为什么它会提供所有条目
当然,如果您使用
.children[1]
或大于0
的任何内容,则没有children,因为您只有一个tbody
是的,您的HTML无效,因为它不包含
元素,因此浏览器会为您插入它,就像表格单元格一样
因此,当您进入表
并使用.children[0]
时,您将获得新的
元素,它包含所有
元素,这解释了为什么它会提供所有条目
当然,如果你使用
.children[1]
或任何大于0
的东西,就没有children,因为你只有一个tbody
作为tr
的子对象包含文本内容是无效的HTML(它需要在th
或td
中)作为tr
的子元素包含文本内容是无效的HTML(它需要在th
或td
中)表中。单元格将为您提供th
和td
元素。我明白了。因此,在不改变HTML的情况下绕圈的唯一方法是查找异常(表)并执行。children[0]。children[a]?@GabyakaG.Petrioli:是的,这在我的回答中已经提到。我没有包括标记,因为它们对这个示例来说无关紧要(我认为)。@dosaki:可以有多个
元素,以及
和
元素,因此如果您不知道页面的布局,您可能只想测试表,并使用table.rows
直接获取所有行<代码>表格。行[0]
表格。单元格将为您提供th
和td
元素。我明白了。因此,在不改变HTML的情况下绕圈的唯一方法是查找异常(表)并执行。children[0]。children[a]?@GabyakaG.Petrioli:是的,这在我的回答中已经提到。我没有包括标记,因为它们对这个示例来说无关紧要(我认为)。@dosaki:可以有多个
元素,以及
和
元素,因此如果您不知道页面的布局,您可能只想测试表,并使用table.rows
直接获取所有行<代码>表。行[0]