Javascript 如何将元素与[]的值进行比较
我正在尝试获取Javascript 如何将元素与[]的值进行比较,javascript,html,getelementsbytagname,Javascript,Html,Getelementsbytagname,我正在尝试获取中包含的标记的计数 例如,表中有以下标记: <th><tr></tr></th> <th></th> <th></th> <th></th> javascript: var table = document.getElementById(tableId); var tbody = table.getElementsByTagName("tbody")
中包含的
标记的计数
例如,表中有以下标记:
<th><tr></tr></th>
<th></th>
<th></th>
<th></th>
javascript:
var table = document.getElementById(tableId);
var tbody = table.getElementsByTagName("tbody")[0];
var thead = tbody.getElementsByTagName("th");
var rowCount = 0;
for (i = 0; i < thead.length; i++) {
if (thead[i].getElementsByTag("tr") === 'unidentified') rowCount++;
}
var table=document.getElementById(tableId);
var tbody=table.getElementsByTagName(“tbody”)[0];
var thead=tbody.getElementsByTagName(“th”);
var rowCount=0;
对于(i=0;i
AD变量值应为=[tr]、[]、[]、[]
但是rowCount的值是4,应该是1
我试图计算[]//这个看似空的元素的实际值是多少
我尝试将ad[I].getElementsByTag(“tr”)与null、empty、“[]”、“[]”进行比较
但是结果是错误的
thead
和th
是两个不同的东西。th
元素不应包含tr
元素。通常,thead
包含tr
s,其中包含th
s。浏览器可能会尝试像这样规范化格式错误的标记。您可以使用jQuery$(“#”+tableId+”>tr”).size()
@Narek是否看到jQuery标记?getElementsByTagName
如果找不到元素,则返回空节点列表,而不是未定义的(当然也不是“未识别的”
)。因此,您的检查应该类似于if(thead[i].getElementsByTagName(“tr”).length>0)
。您不应该使用无效的HTML,每个浏览器的结果都会不同,这取决于它如何处理这些无效的HTML。