jQuery - Looping through elements with specific Attribute -
i know how loop through inputs below, searching ones specific class of "testers"
and here's how that:
<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>
it outputs "john", "smith" expected.
i want not use class="testing"
, use custom attribute: testdata="john"
.
so i'd doing:
<input type='text' name='firstname' testdata='john'> <input type='text' name='lastname' testdata='smith'>
my goal auto-populate values of each input whatever inside testdata
, detected have testdata
attribute.
this failed attempt @ using $.each
loop:
$.each($('input').attr('testdata'), function() { var testdata = $(this).attr('testdata'); $(this).val(testdata); });
i response: uncaught typeerror: cannot read property 'length' of undefined
can see i'm doing wrong?
here using html5 data-*
attribute:
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); });
here working: http://jsfiddle.net/sfvyw/
an shorter way of doing using js:
$("input[data-test]").val(function(){ return $(this).data('test'); });
internally it's doing same other js code it's little more concise.
Comments
Post a Comment