努力增加div的价值'属性为输入:
我的HTML是:
<div class="modal-body" client-name="test1">
<input class="gform_hidden"/>
</div>
<div class="modal-body" client-name="new name">
<input class="gform_hidden"/>
</div>
<div class="modal-body" client-name="test3">
<input class="gform_hidden"/>
</div>
和jQuery代码:
$('.modal-body').each(function () {
var cname = $(this).attr('client-name');
$('input.gform_hidden').val(cname);
});
任何人都可以帮助我获得个人价值而不是最后一个。
请参阅下面的jsfiddle:http://jsfiddle.net/9nph7eyc/
答案 0 :(得分:2)
答案 1 :(得分:1)
对于每个输入字段,您需要传递其父元素的值client-name
属性值
$('.modal-body input.gform_hidden').val(function () {
return $(this).parent().attr('client-name')
});
演示:Fiddle
在你的代码中,问题是$('input.gform_hidden').val(cname);
,在每次迭代中你改变所有输入元素的值而不是仅针对一个输入,所以在循环结束时所有输入元素都有值最后一次迭代。
答案 2 :(得分:1)
首先,您应该修改HTML以使用data-*
属性来存储自定义信息。按原样创建自己的属性可能会导致JS和/或UI问题:
<div class="modal-body" data-client-name="test1">
<input class="gform_hidden" />
</div>
<div class="modal-body" data-client-name="new name">
<input class="gform_hidden" />
</div>
<div class="modal-body" data-client-name="test3">
<input class="gform_hidden" />
</div>
您可以在此处访问此data
属性以填充input
的值:
$('input.gform_hidden').val(function() {
return $(this).closest('div').data('client-name');
});
答案 3 :(得分:1)
试试这个Demo,无论如何你都得到div attr的值,但你需要指出要打印的特定输入。
$('.modal-body').each(function() {
var cname = $(this).attr('client-name');
console.log(cname)
$(this).find('.gform_hidden').val(cname);
});