<div id=id1>
<input class=class1>
</div>
<div id=id2>
<input class=class1>
</div>
以上是我的html标签。 在下面的代码中,我选择了像这样的父ID,
$(".class1").parent().attr('id')
但我只得到id1。我想要id1和id2。 ?? 该怎么办?
答案 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,则不会插入任何元素。