JQuery .each()返回undefined

时间:2012-12-17 13:20:23

标签: jquery

我有两张桌子。第一个只用于标题,因为我没有找到一个解决方案来使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 &ouml;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,但我得到的结果和以前一样。

4 个答案:

答案 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>

相关问题