jquery如何取出自定义属性的值并将其放入数组、json字符串

<a class="onoffmg" value="0" name="codeXML">
<a class="onoffmg" value="1" name="codeZJH">
<a class="onoffmg" value="1" name="codeXM">
如上面三个a标签,有自定义属性value,name。
我现在想取得value、name 的值。并最后形成键值对的形式:
name:value 即 codeXML:0,codeZJH:1,codeXM:1
如何做到呢

    $(function(){
        var str = "";
        $.each($(".onoffmg"),function(i,d){
            str +=  $(d).attr('name') + ":" + $(d).attr('value') + ",";
        });
        str = str.substring(0,str.length-1);
        console.log(str)
    })

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-02-10
$(function(){
$("[id=a]").each(function(){
var v = $(this).text();
var n = $(this).attr("name");
alert(v+":"+n);
});
});
<a class="onoffmg" id="a" name="codeXML" >0</a>
<a class="onoffmg" id="a" name="codeZJH" >1</a>
<a class="onoffmg" id="a" name="codeXM" >2</a>
超链接《a》没有value属性追问

是啊,没有value属性。但是我为了能取出这些值组成键值对形式,强加的。attr倒是也能取出自定义属性的值,但是我
var obj = $(".onoffmg");
var value = obj.attr("value");
var name = obj.attr("name");
alert(name+value)却只能出第一个值

追答

因为没有value所以你取不出来,你可以把name变成 name="0:codeXML"