代码之家  ›  专栏  ›  技术社区  ›  Elvira

如何获取div的顶级父级

  •  5
  • Elvira  · 技术社区  · 7 年前

    我想知道如何得到一个部门的最高级别的家长。我知道你可以使用 parent() ,但我在多个div上有一个click函数

    <div class="parent" data-row="1">
      <div class="cat div1">
        <div class="sub-cat div1_1">content</div>
        <div class="sub-cat div1_2">content</div>
        <div class="sub-cat div1_3">
          <div class="inner-cat 1_3_3">innercontent</div>
        </div>
      </div>
      <div class="cat div2">
        <div class="sub-cat div2_1">content</div>
      </div>
    </div>
    

    data-row .

    我有点击功能 .sub-cat .inner-cat .cat 但是,我想得到 数据行 每次点击都能正常工作。

    我试图通过使用 $(this).closest('.parent') 0 .

    2 回复  |  直到 7 年前
        1
  •  4
  •   Rory McCrossan Hsm Sharique Hasan    7 年前

    为了达到这个目的,你可以使用 closest() parents() 是另一种选择,但是 最近() 在第一场比赛停止时表现更好。

    $('.cat, .innercat, .sub-cat').click(function(e) {
      e.stopPropagation();
      var row = $(this).closest('.parent').data('row');
      console.log(row);
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <div class="parent" data-row="1">
      <div class="cat div1">
        <div class="sub-cat div1_1">content</div>
        <div class="sub-cat div1_2">content</div>
        <div class="sub-cat div1_3">
          <div class="inner-cat 1_3_3">innercontent</div>
        </div>
      </div>
      <div class="cat div2">
        <div class="sub-cat div2_1">content</div>
      </div>
    </div>

    stopPropagation() 在事件处理程序中停止事件冒泡并被嵌套元素捕获。

        2
  •  2
  •   Jamiec    7 年前

    你想要的 parents(".parent")

    $('.cat, .sub-cat, .inner-cat').on("click", function(){
        var $parent = $(this).parents(".parent");
        console.log($parent.data("row"));
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <div class="parent" data-row="1">
      <div class="cat div1">
          <div class="sub-cat div1_1">content</div>
          <div class="sub-cat div1_2">content</div>
          <div class="sub-cat div1_3">
              <div class="inner-cat 1_3_3">innercontent</div>
          </div>
      </div>
      <div class="cat div2">
         <div class="sub-cat div2_1">content</div>
      </div>
    </div>