2014-01-06 29 views
0

嗯,这似乎微不足道的一些,但时间最长的我已经做了以下内容:修改表行的内容与jQuery

$('table#mats tr:last').find("select[id^='material_type']").val(''); 
    $('table#mats tr:last').find("select[id^='material_desc']").val(''); 
    $('table#mats tr:last').find("select[id^='material_thick']").val(''); 
    $('table#mats tr:last').find("select[id^='material_color']").val(''); 
    $('table#mats tr:last').find("select[id^='material_finish']").val(''); 

换句话说,我修改值为每个输入我表格的最后一行。我正在寻找一种方法来做到这一点,而不会重复太多,因为这可能会让人无法接受。但我不确定你可以连锁find并同时修改某些内容,或者我错了吗?我很确定jQuery中有一些允许这样做的东西,但我不记得它是什么。

+0

对于这样的问题,它往往是一个很好的我dea(如果不是完全强制的话)提供一些样本/代表性的HTML。在这种情况下,正如[Arun P. Johny显示](http://stackoverflow.com/a/20954001/82548),它*可以被推断出来,但是演绎只是一个受过教育的猜测,而猜测通常是不好的主意,用代码。 –

回答

0

如果这些都在TR没有其他选择的元素,那么为什么不

$('#mats tr:last select").val(''); 

如果有其他选择的元素,并要重置仅这些元素,然后一个共同的类添加到所有这些选择元素,然后

$('#mats tr:last select.myclass").val(''); 

如果那也是不可能的,那么

$('#mats tr:last select").filter('[id^='material_type'],[id^='material_desc'],[id^='material_thick'],[id^='material_color'],[id^='material_finish']').val(''); 
+0

你也可以使用'end()'方法来做到这一点吗? – Dimitri

+0

@Dimitri不确定你想用'end()'做什么 –

+0

这很好,谢谢。 – Dimitri