如下代码:

<div id='idiv' name='ndiv'>
<script>
    var attrs = $('#idiv').attr({})
    var astr = JSON.stringify(attrs)
    console.log (astr)
</script>


在控制台中产生:

{"0":{},"length":1,"context":{"location":{}},"selector":"#idiv"}


为什么没有结果:

{"id":"idiv","name":"ndiv"}


我如何获得后者?

最佳答案

尝试这个:

<div id='idiv' name='ndiv'>
<script>
    var attrMap = $('#idiv')[0].attributes;
    var attrs = {};
    $.each(attrMap, function(i,e) { attrs[e.nodeName] = e.value; });
    console.log(attrs); // Object {id: "idiv", name: "ndiv"}
    console.log(JSON.stringify(attrs)) //  {"id":"idiv","name":"ndiv"}
</script>


小提琴:http://jsfiddle.net/xbuhbqux/

关于javascript - 无法使用jQuery的attr()获得div属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25534048/

10-08 21:52