有没有办法可以同时获得对象的许多属性?

时间:2012-10-08 02:15:27

标签: javascript jquery

我有以下内容:

    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')
    };

我只是想知道。有没有更清洁的方式,我可以做到这一点,或者我不得不得到这样的属性。

3 个答案:

答案 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/