从父元素中获取ID并将它们放在数组中

时间:2013-10-04 13:46:52

标签: javascript jquery

我想知道如何在点击子元素时获取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 个答案:

答案 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。

Demonstration

答案 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);
    });
});