1

嗨,我正在使用 jquery 函数获取所有 a 标签属性,现在我想将它们存储到一个并附加到正文中,但找不到完成它的方法。这是小提琴链接

<head>
<script type="text/javascript">
$(function(){
$('a').click(function(){
var name= $(this).attr('name');
var href= $(this).attr('href');
var jj= $(this).attr('class');
var user_id= $(this).attr('user_id');
var page_type= $(this).attr('page_type');
var price= $(this).attr('price');
var bonus= $(this).attr('bonus');
var wrapper= $(this).attr('wrapper');
var token= $(this).attr('token');
var own= $(this).attr('own');
$('body').append('<div>'+name+'<div>')
})})
</script>
</head>
<body>
<a id="profile_2902" name="b_now" href="#" class="big_now" user_id="152402569967" page_type="profile" price="292" bonus="0" wrapper="5972569967" token="e644ce48aa43dc3caa348745a" own="4100447132">
Click now!
</a>
</body>
4

3 回答 3

1

您可以使用原始 js 获取所有属性并使用 jquery 打印它们,如下所示:

var el = document.getElementById("someId");
var arr = [];
for (var i=0, attrs=el.attributes, l=attrs.length; i<l; i++){
    arr.push(attrs.item(i).nodeValue);
}
$('body').append('<div>'+arr.join(", ")+'<div>');

在这里工作的小提琴示例

于 2012-08-27T13:18:47.480 回答
1

您可以使用下面的此功能来读取所有属性并将它们推送到数组中。

演示:http: //jsfiddle.net/cuyfK/1/

    var el = this, arr = [], it;
    for (var i = 0, attrs = el.attributes, l = attrs.length; i < l; i++) {

        it = attrs.item(i);

        if (it.nodeName == 'id') {
            arr.push(it.nodeName + '="' + it.nodeValue + '_fixed"');
        } else {
            arr.push(it.nodeName + '="' + it.nodeValue + '"');
        }
    }

或者您可能想在数组中推送特定的 attr 值.. 试试下面,

$(function() {
    $('a').click(function() {
        var attr = [];
        attr.push($(this).attr('name'));
        attr.push($(this).attr('href'));
        attr.push($(this).attr('class'));
        attr.push($(this).attr('user_id'));
        attr.push($(this).attr('page_type'));
        attr.push($(this).attr('price'));
        attr.push($(this).attr('bonus'));
        attr.push($(this).attr('wrapper'));
        attr.push($(this).attr('token'));
        attr.push($(this).attr('own'));

        $('body').append('<div>' + attr.join(' ') + '<div>')   
    });
});
于 2012-08-27T13:18:55.203 回答
1

使用一个数组来存储您希望查找的属性,然后只需遍历该数组$.each以查找所有值并将它们集中到一个字符串中并一次性将它们全部附加以提高效率:

$(function(){
    var attributes = ['name', 'href', 'class', 'user_id', 'page_type',
                      'price', 'bonus', 'wrapper', 'token', 'own']

    $('a').on('click', function(){
        var html='', self=this;
        $.each(attributes, function(i,e) {
            html += '<br><div>'+e+' : '+$(self).attr(e);
        });
        $('body').append(html);
    });
});​

小提琴

于 2012-08-27T13:23:51.040 回答