无法从循环中的对象获取数据属性值

时间:2015-03-30 03:56:35

标签: javascript jquery html html5

我有多个带有容器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')。但是,这些都不起作用。

1 个答案:

答案 0 :(得分:4)

你不能使用jquery函数作为obj已经包装为DOM。不要使用.data().attr(),请尝试使用以下原生javascript代码:

obj.getAttribute("data-value");