0

我想知道当我单击子元素时如何获取 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>
4

4 回答 4

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 显然是为这个问题编写的,但是li 元素不能将 div 元素作为 parent。这个无效的 HTML 足以阻止真正的“父级”成为 div。

示范

于 2013-10-04T13:47:41.877 回答
1

尝试这个

$(document).ready(function () {

    $('li').click(function () {
        var IDArray = new Array();
        $('.selected').each(function (Mindex, Mval) {
            IDArray.push($(Mval).attr('id'));
        });

    });
});
于 2013-10-04T13:54:00.433 回答
0

try this:

var arry = new Array();
$(".selected").each(function(){
  arry.push(this.id);
 });
于 2013-10-04T13:52:24.270 回答
0

You can try this

$('li').click(function(){
    var ary = new Array();
    $("div.selected").each(function(){
      ary.push(this.id);
    });
});
于 2013-10-04T13:53:00.287 回答