循环遍历元素的所有后代,获取它们的属性

时间:2013-08-21 09:58:14

标签: jquery html css

我有一个html块,其中包含很多孩子。

<div id="selectedId">
    <div class=".."><a class=".."></a>
        <button style=".."></button>
    </div>
    <div id="otherId">
        <table></table>
    </div>
</div>

我正在使用jquery来选择父级。然后我尝试遍历所有后代并访问各种属性,例如class或innerHtml。我似乎无法访问他们的属性。

function rewriteCategoryName(oldCategoryName, newCategoryName)
{
    // get div parent
    var parentDiv = $("#selectedId");   

    parentDiv.find('*').each( function(el,key) {
        alert(el+" --");
        el.each( function(el,key) {
           // i get just numbers here, and undefined on everything 
           // i try to access
        });

    });
}

有什么想法吗?我在这做错了什么?有没有我缺少的概念?

2 个答案:

答案 0 :(得分:1)

$("#selectedId").find('*').each( function(el,key) {

    $(this).each(function() {
      $.each(this.attributes, function() {
        // this.attributes is not a plain object, but an array
        // of attribute nodes, which contain both the name and value
        if(this.specified) {
          console.log(this.name, this.value);
        }
      });
    });

});

答案 1 :(得分:1)

你已经在每个函数中切换了顺序,键是第一个参数,元素是第二个,所以改变:

$("#selectedId").find('*').each( function(el,key)

为:

$("#selectedId").find('*').each( function(key,el) {

了解更多详情:http://api.jquery.com/jQuery.each/