Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过jQuery对象循环并获取数据值_Jquery_Custom Data Attribute - Fatal编程技术网

通过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>

我有一个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></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);            

});