我想知道如何在点击子元素时获取3元素父元素的值ID,并将它们放在数组中。
<div class="selected" id="1">
<div>Click</divi>
</div>
<div class="selected" id="2">
<div>Click</div>
</div>
<div class="selected" id="3">
<div>Click</div>
</div>
<script>
$('li').click(function(){
/// ???
});
</script>
答案 0 :(得分:1)
获取所有ID:
var ids = $('.selected').map(function(){ return this.id }).get();
这会构建这个数组:
["1", "2", "3"]
获取被点击元素的父级的ID:
<div class="selected" id="1">
<ul><li>Click</li></ul>
</div>
<div class="selected" id="2">
<ul><li>Click</li></ul>
</div>
<div class="selected" id="3">
<ul><li>Click</li></ul>
</div>
<script>
$('li').click(function(){
console.log($(this).closest('[id]').attr('id'));
});
</script>
我不确定它对您来说是否重要,因为您的HTML显然是针对此问题编写的,但是a li element can't have a div element as parent。这个无效的HTML足以阻止真正的“父”成为div。
答案 1 :(得分:1)
试试这个
$(document).ready(function () {
$('li').click(function () {
var IDArray = new Array();
$('.selected').each(function (Mindex, Mval) {
IDArray.push($(Mval).attr('id'));
});
});
});
答案 2 :(得分:0)
试试这个:
var arry = new Array();
$(".selected").each(function(){
arry.push(this.id);
});
答案 3 :(得分:0)
你可以试试这个
$('li').click(function(){
var ary = new Array();
$("div.selected").each(function(){
ary.push(this.id);
});
});