2011-10-12 48 views
-1

我试图设置表格中给定行内的所有单元格的类属性。这是我尝试过的,但我没有得到例外,它也不起作用。JQuery替换一行中所有表格单元格的css类属性

下面是当前行/单元格的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'); 
    }); 

UPDATE OK,我改成了这一点,但它仍然是不设置类。

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

我添加了警报,以确保我有正确的行,并且它确认我的确如此。

SOLUTION 我不得不删除已经在那里

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

这种错误应该用语法高亮来捕捉。记事本不是一个好的源代码编辑器。 – Chad

+1

@Chad或在StackOverflow的代码预览中... – lonesomeday

+0

我使用的是Visual Studio,但是我添加的那个变量声明只是在我发布我的问题时输入的。我编辑了这个问题。 –

回答

0

我不得不从TD删除现有的类添加之前类。我找到答案here

这就是我最终的结果。

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

事实上,你的问题是不准确的:你不仅试图向单元添加一个类。你想删除一个,并用新的替换它。我很高兴它的工作:-) –

+0

是的。我提出了所有答案,因为他们对我提出的问题是正确的。但是,我想创建答案,以便在这里发现的其他人可以清楚地看到解决方案。 –

+0

不错,但也请更新您的问题和答案,因为问题的一部分仅在您的答案中显示... –

3

随着代码突出显示了类,你有不匹配的报价:

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

此外,你应该只有一个具有给定id的元素,因此调用each就不会真的有道理。如果您有多个元素使用相同的id,那可能是此失败的另一个原因。如果没有,你可以做$(rowId).children('td').addClass('tblist');

+0

我试过了,$(rowId).children('td').addClass('tblist');,但它不起作用。查看我的问题的更新。 –

0

你可以很可能只做到这一点:

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

如何:

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

@Doozer Blake提出了这个建议。我试过了,但也没有奏效。 –

+0

嗯,它有点工作:[jsfiddle](http:// jsfiddle。net/7PHCD/12 /) –

相关问题