我有两张桌子。第一个只用于标题,因为我没有找到一个解决方案来使thead不可滚动。第二个包含内容,但在加载一方时为空。首先是两个表的代码。
<table width="100%">
<caption class="splitselection">
<b>Downloads</b>
</caption>
<thead align="left">
<tr>
<th scope="col" width="36%" align="left" >Dateiname </th>
<th scope="col" width="32%" align="left" >Fortschritt </th>
<th scope="col" id="status" width="22%"align="left" >Status </th>
<th scope="col" width="10%" align="left" >Ordner öffnen </th>
</tr>
</thead>
</table>
<div style="overflow:auto; height:115px; width:100%" class="downloadFrame">
<table width="100%" id="download_table" align="center">
<tbody align="left">
</tbody>
</table>
</div>
所以现在我想要捕获表中的每个<tr>
元素以及包含此代码的内容:
var interval = window.setInterval(function() {
$('#download_table > tbody > tr').each(function() {
alert($(this).find('td')[0].html);
});
},5000);
我正在创建一个检查特定表格单元格的间隔。
在我的警报中,我想要检索此表格单元格,但此处的警报返回“未定义”。
如果我只是写alert($(this).find('td')[0]);
,则会返回HTML htmlObjectTableCell
。
没有添加任何一个tablerow,我的间隔什么都不做。如果我添加一行,我会收到提醒。所以对我来说,当我想获得tablecell html
时,肯定会出现问题然而我尝试使用.html .val和.text,但我得到的结果和以前一样。
答案 0 :(得分:1)
您正在循环遍历作为直接子节点的每个tr到作为#download_table的直接子节点的tbody元素。您的标记显示的是tbody-element根本没有任何子项。
答案 1 :(得分:1)
DOM元素内容的HTML存储在innerHTML
属性中,而不是名为html
的属性中,因此您需要将该行更改为:
alert($(this).find('td')[0].innerHTML);
答案 2 :(得分:1)
请改为尝试:
$(this).find('td').eq(0).html();
或
$(this).find('td:first-child').html();
顺便说一下,$("foo").html
返回对html
函数的引用,而不是调用它。当您想要实际执行名为function_name()
的函数时,请确保使用function_name
而不是function_name
。
在jQuery中,$('selector')[0]
不会返回一个jQuery包装的对象,而是一个PODO(Plain Old Dom Object,有人吗?)。这意味着你不能在返回的对象上调用jQuery函数。但是$('selector').eq(0)
返回一个jQuery包装的对象,因此您可以在其上调用jQuery函数。
答案 3 :(得分:0)
表格中没有<td>