这适用于第一场比赛: var attributeValue = $({selector}).data("myAttribute"); 但是如果我想获取所有元素选择器匹配的值,我会执行以下操作: var attributes = [];$.each($({selector})), function(k,v) { attribut
var attributeValue = $({selector}).data("myAttribute");
但是如果我想获取所有元素选择器匹配的值,我会执行以下操作:
var attributes = []; $.each($({selector})), function(k,v) { attributes.push($(v).data("myAttribute")); });
这感觉很愚蠢.是否有更简单的方法来获取所有元素的数据?
我不认为有一种内置的方法来制作你想要的数组.但是你可以使用$().map()来简化代码.var attributes = $({selector}).map( function( i, element ) { return $(element).data( 'myAttribute' ); });
或者,如果这可能在多个地方使用,您可以将其设为插件:
$.fn.dataArray = function( name ) { return this.map( function( i, element ) { return $(element).data( name ); }); };
并使用这个非常简单的代码调用它:
var attributes = $({selector}).dataArray( 'myAttribute' );