我有以下内容:
link = {
action: $link.attr('data-action') || '',
dialogType: $link.attr('data-dialogType') || '',
params: $link.attr('data-params') || '',
title: $link.attr('title') || '',
viewURL: $link.attr('data-href') || '',
entity: $link.attr('data-entity') || '',
row: $link.attr('data-row')
};
我只是想知道。有没有更清洁的方式,我可以做到这一点,或者我不得不得到这样的属性。
答案 0 :(得分:3)
您可以为此提出许多功能:Get all Attributes from a HTML element with Javascript/jQuery
或者,干嘛:
var link = {};
['action', 'dialogType', 'params', 'title', 'href', 'entity', 'row'].forEach(function(i) {
link[i] = $link.attr('data-' + i) || $link.attr(i);
});
请注意,这需要将viewURL更改为href。还需要forEach
支持。
答案 1 :(得分:1)
简单使用此
link=$link.data();
link.title=$link.attr('title');
根据Wesley Murch的建议进行编辑
答案 2 :(得分:0)
您可以使用jQuery extend()
method(除了title
之外的所有内容):
link = $.extend(link, $('a#mylink').data());
link.title = $('a#mylink').attr('title');
这里有一个小提琴:http://jsfiddle.net/q4hqR/