通过jQuery对象循环并获取数据值
我有一个jQuery对象,通过如下代码获得:通过jQuery对象循环并获取数据值,jquery,custom-data-attribute,Jquery,Custom Data Attribute,我有一个jQuery对象,通过如下代码获得: var elements = $('#all_cats_holder div.wSelect-option-selected').detach(); 它得到的代码如下: <div class="wSelect-option wSelect-option-selected"><div class="wSelect-option-value" data-val="2">Some stupid cat #2</div>
var elements = $('#all_cats_holder div.wSelect-option-selected').detach();
它得到的代码如下:
<div class="wSelect-option wSelect-option-selected"><div class="wSelect-option-value" data-val="2">Some stupid cat #2</div></div>
<div class="wSelect-option wSelect-option-selected"><div class="wSelect-option-value" data-val="3">Some stupid cat #3</div></div>
<div class="wSelect-option wSelect-option-selected"><div class="wSelect-option-value" data-val="4">Some stupid cat #4</div></div>
我甚至没有收到任何警报。为什么不把它做成一个带有$.map的数组呢
var mr_val = $.map(elements, function(el) {
return $(el).find('[data-val]').data('val');
});
或与每个
var mr_val;
$.each(elements, function(index, el) {
mr_val = $(el).find('div').data('val');
alert(mr_val);
});
这是因为您正在通过外部div循环,这些div没有
dataval
属性。您希望遍历到子div,然后从中提取属性。这些元素似乎与选择器中给定的类不匹配,您确定这就是您得到的。@PatrickQ Ahh。。。可能就是这样。谢谢,我的错。更新。请注意,循环中的el
不是jQuery对象,并且没有data()
方法
var mr_val;
$.each(elements, function(index, el) {
mr_val = $(el).find('div').data('val');
alert(mr_val);
});