这是我的第一个问题,我希望它有道理,因为我是javascript / jquery的新手。
所以,我有自定义属性data-value=<?php echo $value ?>
页面加载后,我有一些javascript $('[data-value]')
来选择页面上具有属性“data-value”的所有元素。这将返回一个包含所有相关元素的数组。然后我尝试使用$('[data-value]').data('value')
获取值。现在,虽然这会返回正确的结果,但它只返回它遇到的第一个元素。我尝试使用$('[data-value]')[num].data('value')
迭代代码,其中'num'介于零和数组长度之间。可悲的是,这不起作用。
那么有没有办法获取所有选定元素都具有的特定属性的所有值?
答案 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')