在jquery中将一个以上的变量添加到一个变量中

时间:2012-08-27 13:15:17

标签: jquery

您好我使用jquery函数获取所有标记属性,现在我想将它们存储在一个并附加到正文中,但无法找到如何完成它的方法。这是fiddle链接

<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>

3 个答案:

答案 0 :(得分: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>');

Working fiddle example here

答案 1 :(得分:1)

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

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

答案 2 :(得分: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);
    });
});​

FIDDLE