jQuery-перебор элементов с определенным атрибутом
Я знаю, как перебирать входные данные ниже, ища те, у которых есть определенный класс "тестеров"
и вот как я делаю это:
<input type='text' name='firstname' class="testing" value='John'>
<input type='text' name='lastname' class="testing" value='Smith'>
<script type="text/javascript">
$(document).ready(function(){
$.each($('.testing'), function() {
console.log($(this).val());
});
});
</script>
он выводит "Джон", "Смит", как и ожидалось.
Я не хочу использовать class="testing"
и используйте пользовательский атрибут:testdata="John"
.
так вот что я буду делать:
<input type='text' name='firstname' testdata='John'>
<input type='text' name='lastname' testdata='Smith'>
моя цель-автоматически заполнять значения каждого входа тем, что находится внутри testdata
, но только те обнаруженные у
4 ответов
здесь он использует HTML5 :
HTML-код:
<input type='text' name='firstname' data-test='John'>
<input type='text' name='lastname' data-test='Smith'>
JS:
$("input[data-test]").each(function(){
var testdata = $(this).data('test');
$(this).val(testdata);
});
вот он работает:http://jsfiddle.net/SFVYw/
еще более короткий способ сделать это будет использовать этот JS:
$("input[data-test]").val(function(){
return $(this).data('test');
});
внутренне он делает то же самое, что и другой код JS, но он просто немного более лаконичен.
Если вы хотите выбрать входы с определенным именем атрибута, и у вас есть эти входы html:
<input type='text' name='user1' fieldname="user" class="testing" value='John1'>
<input type='text' name='user2' fieldname="user" class="testing" value='Smith1'>
<input type='text' name='admin1' fieldname="admin" class="testing" value='John2'>
<input type='text' name='admin2' fieldname="admin" class="testing" value='Smith2'>
вы можете зацикливаться на администраторах только так:
$("input[fieldname='admin']").each(function(){
alert($(this).val());
});
таким же образом, вы можете зациклить только для пользователей:
$("input[fieldname='user']").each(function(){
alert($(this).val());
});
для итерации по всем элементам с testdata
атрибут и назначение полей формы с тем, что их атрибут содержит try
$("[testdata]").each(function(){
$(this).val($(this).attr('testdata'))
})
[работает со всеми элементами, я думаю]