JQuery替换行中所有表格单元格的css类属性

时间:2011-10-12 17:24:57

标签: jquery

我正在尝试设置表中给定行内所有单元格的class属性。这是我尝试过的,但是当我没有得到例外时,它也不起作用。

以下是行/单元格的当前html示例如下。

    <tr id="rowid-1234">
        <td class="tblistred">20-400 Silver  Metal Closure</td>
        <td class="tblistred">Tecno, LLC</td>                          
        <td class="tblistred">Closure</td>
        <td class="tblistred">New Item</td>
    </tr>

这是我的剧本:

    var rowId = "#rowid-" + response.id;
    $(rowId).each(function (index) {
        $(this).children('td').addClass('tblist');
    });

更新 好的,我把它改成了这个,但它仍然没有设置类。

   alert($(rowId).find("td:first-child").text());
   $(rowId).children('td').addClass('tblist');

我添加了警报,以确保我有正确的行,并确认我这样做。

  我不得不删除那里已有的课程

  $(rowId + ' td').removeClass('tblistred').addClass('tblist');

4 个答案:

答案 0 :(得分:3)

如代码突出显示,您的引号不匹配:

var rowID = '#row-' + response.id; // <-- see matching single quotes

此外,您应该只有一个具有给定id的元素,因此在其上调用each并没有多大意义。如果您有多个具有相同id的元素,那么这可能是失败的另一个原因。如果没有,您可以$(rowId).children('td').addClass('tblist');

答案 1 :(得分:1)

怎么样:

$(rowID + ' td').addClass('tblist');

答案 2 :(得分:0)

你可能只需要这样做:

$('#row-" + response.Id + " td").addClass('tblist');

答案 3 :(得分:0)

在添加类之前,我必须从td中删除现有的类。

我找到了答案here

这是我最终的结果。

    $(rowId + ' td').removeClass('tblistred').addClass('tblist');