如何从选择器中获取所有元素包含的属性的每个值?

时间:2017-06-30 14:59:19

标签: javascript jquery html

这是我的第一个问题,我希望它有道理,因为我是javascript / jquery的新手。

所以,我有自定义属性data-value=<?php echo $value ?>

的不同数量的元素

页面加载后,我有一些javascript $('[data-value]')来选择页面上具有属性“data-value”的所有元素。这将返回一个包含所有相关元素的数组。然后我尝试使用$('[data-value]').data('value')获取值。现在,虽然这会返回正确的结果,但它只返回它遇到的第一个元素。我尝试使用$('[data-value]')[num].data('value')迭代代码,其中'num'介于零和数组长度之间。可悲的是,这不起作用。

那么有没有办法获取所有选定元素都具有的特定属性的所有值?

3 个答案:

答案 0 :(得分:3)

要获取所有选定元素的值,您需要遍历列表并选择它们的值,如下所示:

var values = $("[data-value]").map(function(i, el) {
  return el.data('value');
});

console.log(values);

希望有所帮助!

答案 1 :(得分:1)

你可以这样做:

$('[data-value]').each(function(){
   console.log($(this).data('value'));
});

答案 2 :(得分:1)

您可以使用.each()方法迭代元素。

$('[data-value]').each(function() {
    console.log( $(this).data('value');
}

您也可以通过简单的修改尝试使用for循环。 当您执行$('[data-value]')[num]时,实际上您获得的是本机元素,而不是jQuery对象,因此.data()不再可用。要解决此问题,您可以在jQuery对象中重新包装该元素。 $( $('[data-value]')[num] ).data('value')