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

Get ID from elements parent and put them inside an array

本文关键字:数组 元素 获取 ID      更新时间:2023-09-26

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

要获取所有 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 元素作为父元素。这个无效的 HTML 足以阻止真正的"父级"成为div。

示范

试试这个

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

试试这个:

var arry = new Array();
$(".selected").each(function(){
  arry.push(this.id);
 });
你可以

试试这个

$('li').click(function(){
    var ary = new Array();
    $("div.selected").each(function(){
      ary.push(this.id);
    });
});