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

相关文章

页面搜索关键词突出 // 页面搜索关键词突出 $(function () {...
jQuery实时显示日期、时间 html: &lt;span id=&quot...
jQuery 添加水印 &lt;script src=&quot;../../../.....
中文:Sys.WebForms.PageRequestManagerParserErrorExceptio...
1. 用Response.Write方法 代码如下: Response.Write(&q...
Jquery实现按钮点击遮罩加载,处理完后恢复 思路: 1.点击按...