我在webform上有一些文本框,其中包含这样的ID:
txtFinalDeadline_1
txtFinalDeadline_2
txtFinalDeadline_3
txtFinalDeadline_4
在我的jQuery中,我如何找到所有这些以便为它们分配值。在我使用下划线之前,他们都被命名为txtFinalDeadline,我可以做到这一点并且有效。
$(this).find("#txtFinalDeadline").val(formatDate);
然而,那时他们都被命名为同一件事。现在我的名字后面有_x,我不知道如何分配与之前相同的值。
答案 0 :(得分:6)
我不知道我是否能保证“按顺序”,但这位选民应该工作:
$(this).find('input[id^=textFinalDeadline_]').val(formatDate);
即使这样,jQuery也会以特殊方式优化处理id
,并且只能处理1个id。
更好的方法是让这些文本字段使用一个类(可能是date
),这样您就可以使用'.date'
选择器。
答案 1 :(得分:6)
有多种方法可以进行正则表达式或通配符选择:
使用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);
最后你可能想要使用regex selector。
$('input:regex(id, txtFinalDeadline_*)').val(formatDate);
答案 2 :(得分:0)
Child Selector会帮助你吗?