我试图使用jQuery获取'td'的值,但它总是报告'null'

时间:2013-01-03 17:26:29

标签: jquery html asp.net-mvc

我正在尝试获取表中特定单元格的值,以便过滤掉不需要的行。但是,当我尝试获取该单元格的值时,它始终报告null或根本不报告任何内容。我查看了几个来源并以同样的方式完成了我的代码而没有运气。这是我的代码:

$("td").each(function () {
    var setName = $(this).find("#headerName").text();
    alert(setName);
    if (setName != weaverSet) {
        $(this).hide();
    }

weaverSet正在从下拉菜单传递它的值并正常工作。以下是我想要获得的表格部分的代码:

 <td id ="headerName">
     @item.WeaverSetName
 </td>

对此问题表示赞赏。

4 个答案:

答案 0 :(得分:0)

尝试在不调用find函数的情况下获取td的值。在你的循环中得到像这样的值

var setName = $(this).text();

答案 1 :(得分:0)

根据您的问题,您最有可能使用headerName的类而不是ID(您的页面上只应该有一个ID)。

然后您可以执行相同的迭代。

$("td").each(function () {
     var setName = $('.headerName',this).text();
     alert(setName);
     if (setName != weaverSet) {$(this).hide();}
});

<强> Example

或者它们只是元素,你应该能够完全从它们中提取文本及其内容:

$("td").each(function()
{
     var setName = $(this).text();
     alert(setName);
}

Example

答案 2 :(得分:0)

您应该使用filter("#headerName")代替find("#headerName")

您已经在迭代所有单元格。 find在每个单元格中查找名为headerName的单元格。你可能想要的是检查当前单元格是否具有使用filter()函数完成的id。

答案 3 :(得分:0)

只有#headerName单元格位于另一个<td>内时,您所拥有的代码才有效。是否只有一个<td>具有ID headerName?如果是这样,这应该有效(没有围绕它的.each()):

var cell= $("#headerName");
var setName = cell.text();
            alert(setName);
            if (setName != weaverSet) {
                $(cell).hide();
            }

如果没有,那么这是有问题的,因为ID必须是唯一的,在这种情况下你应该使用类。