我有多个带有容器div
<div id="container">
<input type="checkbox" data-value="Apple" onclick="populateParent()" value="1"/>
<input type="checkbox" data-value="Orange" onclick="populateParent()" value="2"/>
...
</div>
每当用户选中该复选框时,我想填充另一个带有id和data-value的选择框。这是选择框
<select name="parent_company" id="merge_parent"></select>
在populateParent
函数中,我可以获取复选框ID,名称,值等。但是我无法获取html5数据属性。这是代码:
function populateParent(){
var selectedCheckbox = $('#container').find('input[type=checkbox]:checked').map(function() {
return this;
}).get();
for(var i=0; i< selectedCheckbox.length; i++){
var obj = selectedCheckbox[i];
var option=
'<option value="'+obj.id+'">'+obj.data('value')+'</option>';
|- This throws Undefined error.
output+=option;
}
$('#merge_parent').html(output);
}
我还尝试使用obj.data('value')
或obj.data-value
,而不是obj.attr('data-value')
。但是,这些都不起作用。
答案 0 :(得分:4)
你不能使用jquery函数作为obj已经包装为DOM。不要使用.data()
或.attr()
,请尝试使用以下原生javascript代码:
obj.getAttribute("data-value");