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

我应该使用哪个jquery方法来获得“关联的”更高级别的元素?

  •  0
  • FabricioG  · 技术社区  · 9 月前

    我正试图从以下结构中获取“.discountData”的文本值:

    <div class="cart-item--content cl-plate-cart-item">
      <div class="discountData" hidden=""> blah blah, bo bo , jo jo, </div>
      <div class="breathe-space" style="display: flex;">
        <div class="flex-child"> QTY: <span style="font-weight: bold;"> 4 </span></div>
      </div>
      <div> DETAILS: </div>
      <div> back: <div class="breathe-space"> Text: <span style="font-weight: bold;">TEST</span></div>
        <div class="flex-container" style="padding: 5px;">
          <div style="flex: 2 1 0%;"><input class="qty-box-2" type="text" id="33461535965272" name="qty"></div>
        </div>
      </div>
    </div>
    

    我从“.qty-box-2”开始,它不是“.discountData”的直接子项 我尝试过:

    $(this).siblings('.discountData');
    $(this).parent('.discountData').text();
    $(this).closest('.discountData').text();
    

    表哥也没工作。。。那是个坏笑话。有什么帮助吗?

    1 回复  |  直到 9 月前
        1
  •  1
  •   j08691    9 月前

    使用 .closest() 然后 .find() :

    $(this).closest('.cart-item--content.cl-plate-cart-item').find('.discountData').text();
    

    前-

    console.log( $('.qty-box-2').closest('.cart-item--content.cl-plate-cart-item').find('.discountData').text() )
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
    <div class="cart-item--content cl-plate-cart-item">
      <div class="discountData" hidden=""> blah blah, bo bo , jo jo, </div>
      <div class="breathe-space" style="display: flex;">
        <div class="flex-child"> QTY: <span style="font-weight: bold;"> 4 </span></div>
      </div>
      <div> DETAILS: </div>
      <div> back: <div class="breathe-space"> Text: <span style="font-weight: bold;">TEST</span></div>
        <div class="flex-container" style="padding: 5px;">
          <div style="flex: 2 1 0%;"><input class="qty-box-2" type="text" id="33461535965272" name="qty"></div>
        </div>
      </div>
    </div>