jQuery – 通过具有特定属性的元素循环

前端之家收集整理的这篇文章主要介绍了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内部的任何内容自动填充每个输入的值,但只有那些被检测到具有testdata属性的值.

这是我尝试使用$.each循环的失败:

$.each($('input').attr('testdata'),function() {
  var testdata = $(this).attr('testdata');
  $(this).val(testdata);    
});

我得到这个响应:未捕获TypeError:无法读取未定义的属性’length’
任何人都可以看到我在做错什么?

解决方法

这里使用的是HTML5 data- *属性

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代码一样,但只是稍微简明一些.

猜你在找的jQuery相关文章