jQuery:选择具有唯一id的所有输入(正则表达式/通配符选择器)

我在webform上有一些文本框,有这样的ID:

txtFinalDeadline_1 txtFinalDeadline_2 txtFinalDeadline_3 txtFinalDeadline_4 

在我的jQuery中,我如何找到所有这些以便为它们赋值。 在我有下划线之前,他们都被命名为txtFinalDeadline,我可以做到这一点并且有效。

 $(this).find("#txtFinalDeadline").val(formatDate); 

然而,那时他们都被命名为同一件事。 现在我的名字后面有_x,我不知道如何分配与之前相同的值。

我不知道我是否能保证“按顺序”,但这位选民应该工作:

$(this).find('input[id^=textFinalDeadline_]').val(formatDate);

即便如此,jQuery也经过优化,以特殊方式处理id ,并且只能处理1个id。

更好的方法是让这些文本字段使用一个类(可能是date ),这样你就可以使用'.date'选择器。

有多种方法可以进行正则表达式或通配符选择:

使用jQuery选择器的内联通配符:

 $('#textFinalDeadline_\\S*').val(formatDate); 

更新: 我注意到这个方法从jQuery 1.3.2开始不再有效。

使用CSS3选择器:

 $('input[id^=textFinalDeadline_]').val(formatDate); 

使用.filter()match()

 $('input').filter(function(){ return this.id.match(/txtFinalDeadline_*/); }).val(formatDate); 

最后,您可能想要使用正则表达式选择器 。

 $('input:regex(id, txtFinalDeadline_*)').val(formatDate); 

儿童选择器会帮助你吗?