如何在Jquery中获取所有父ID并使用相同的类名?

时间:2015-04-27 06:40:54

标签: jquery html

<div id=id1>
<input class=class1>
</div>

<div id=id2>
<input class=class1>
</div>

以上是我的html标签。 在下面的代码中,我选择了像这样的父ID,

$(".class1").parent().attr('id')

但我只得到id1。我想要id1和id2。 ?? 该怎么办?

4 个答案:

答案 0 :(得分:5)

根据文档:

  

.attr(attributeName):获取匹配元素集中第一个元素的属性值。

因此,您需要使用.map()函数将所有元素ID与.get()一起获取,以便将它们放入数组中:

$(".class1").parent().map(function(){
    return this.id;
}).get();

<强> Working Demo

答案 1 :(得分:2)

试试这个

$(function(){
  $(".class1").each(function(){
     var id = $(this).parent().attr("id");
     console.log(id);
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="id1">
<input class="class1">
</div>

<div id="id2">
<input class="class1">
</div>

答案 2 :(得分:1)

您的代码的Id属性只是parent()

获得的结果的第一个元素

使用 .map() 遍历.class1

var arr = $('.class1').map(function(){
    return this.parentNode.id    
}).get();
alert(arr)

<强> Demo

答案 3 :(得分:1)

$ .map()方法将函数应用于数组或对象中的每个项目,并将结果映射到新数组中。

 $(".class1").parent().map(function() {
        return this.id;
      })
      .get()
      .join();

这将返回“id1,id2”。

在回调函数中,这指的是每次迭代的当前DOM元素。该函数可以返回要插入到结果集中的单个数据项或数据项数组。如果返回数组,则将数组内的元素插入到集合中。如果函数返回null或undefined,则不会插入任何元素。