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。