У меня есть некоторые текстовые поля на веб-форме, которые имеют идентификаторы как это:
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);