1

我有以下内容:

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

我只是想知道。有没有更干净的方法可以做到这一点,或者我是否坚持必须获得这样的属性。

4

3 回答 3

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支持。

于 2012-10-08T02:28:53.330 回答
1

简单用这个

link=$link.data();
link.title=$link.attr('title');

按照 Wesley Murch 的建议进行编辑

于 2012-10-08T02:18:28.023 回答
0

您可以使用jQueryextend()方法(除 之外的所有内容title):

link = $.extend(link, $('a#mylink').data());
link.title = $('a#mylink').attr('title');

这是它的实际操作:http: //jsfiddle.net/q4hqR/

于 2012-10-08T02:34:02.940 回答