试图获取Javascript中所有TR行的列表
抱歉我的无知-我的Javascript不是很好 无论如何,我的标题中有以下内容:试图获取Javascript中所有TR行的列表,javascript,html,Javascript,Html,抱歉我的无知-我的Javascript不是很好 无论如何,我的标题中有以下内容: <script type="text/javascript"> var tableRows = document.getElementbyId("inventorytable").childNodes; alert(tableRows) </script> var tableRows=document.getElementbyId(“inventorytable”).childNode
<script type="text/javascript">
var tableRows = document.getElementbyId("inventorytable").childNodes;
alert(tableRows)
</script>
var tableRows=document.getElementbyId(“inventorytable”).childNodes;
警报(表格行)
据我所知,它应该抓取id为“inventorytable”的表的子项,对吗
尝试最终沿DOM树向下移动到表的子级(即TDs)的子级,并根据它们在表中的位置添加字符串。但就目前而言,只是尝试选择表中的子项并提醒它们
我已添加此代码,但仍然没有警报:
<head>
<script type="text/javascript">
window.onload = function inventorytable() {
var tableRows = document.getElementbyId("inventorytable").rows;
alert(tableRows.length);
};
</script>
</head>
window.onload=函数inventorytable(){
var tableRows=document.getElementbyId(“inventorytable”).rows;
警报(tableRows.length);
};
试试:
请参见您应该做两件事之一:
window.onload = function () {
//your code here
var tableRows = document.getElementbyId("inventorytable").childNodes;
alert(tableRows);
};
$(document).ready( function () {
// your code here…
// instead of writing `document.getElementbyId("inventorytable").childNodes;`
// you could do
var tableRows = $('#inventorytable').find('tr');
alert( tableRows );
});
跨浏览器不支持DOMReady事件,因此有一个库可用于将逻辑附加到该事件-
我建议您阅读这里的解释:,如果您打算使用jQuery,那么您可以这样做:
window.onload = function () {
//your code here
var tableRows = document.getElementbyId("inventorytable").childNodes;
alert(tableRows);
};
$(document).ready( function () {
// your code here…
// instead of writing `document.getElementbyId("inventorytable").childNodes;`
// you could do
var tableRows = $('#inventorytable').find('tr');
alert( tableRows );
});
简单,使用
getElementsByTagName
:
var tableRows = document.getElementById("inventorytable").getElementsByTagName("tbody")[0].getElementsByTagName("tr");
请注意,tbody
是在IE浏览器上工作所必需的。然后循环这些元素并警告它们
for (var i = 0; i < tableRows.length; i++) {
window.alert(tableRows[i].tagName); // Or whatever...
}
for(var i=0;i
这是一种跨浏览器技术,可能在任何地方都适用:)我尝试过,但仍然没有弹出警报-这可能与我将其放在标题中的事实有关吗?看看@gryzzly的答案(+1)。getElementById,而不是getElementById的跨浏览器?这似乎是其中的一些。我要试试看。:)是的,而且这是唯一一种真正的让桌子上的人都坐下来的方法。MDN:MSDN:“仅限”?我总是用我张贴的方式。好吧,谢谢你的提示,这对我来说是新的!关于您的方式:若表包含子表怎么办?您确定您的方式返回正确的TBODY?不
GetElementsByTagname
返回直接后面的标记吗?所以在我的示例中,即使表中有其他表,它也会在父对象之后返回tbody
,对吗?