javascript - 单击当前行以在 jQuery 中展开详细信息

标签 javascript jquery html

我想单击特定行以使用一些数据扩展该行。我尝试使用 this jQuery,但它不起作用。

任何人都可以帮忙,我错过了什么。

jQuery

这工作正常,但我想处理当前行

$('.item-id-expand').click(function(){
  $('.item-id-close').css("display", "inline-block");
  $('.item-id-expand').hide();
  $('.order-details-row1-details').show();
});
$('.item-id-close').click(function(){
  $('.item-id-close').hide();
  $('.item-id-expand').show();
  $('.order-details-row1-details').hide();
});

我在这里尝试使用这个,但它不起作用

$('.item-id-expand', this).click(function(){
  $(this).find('.item-id-close').css("display", "inline-block");
  $(this).find('.item-id-expand').hide();
  $(this).find('.order-details-row1-details').show();
});
$('.item-id-close').click(function(){
  $(this).find('.item-id-close').hide();
  $(this).find('.item-id-expand').show();
  $(this).find('.order-details-row1-details').hide();
});

HTML

<div class="order-details">
  <ul class="order-details-head">
    <li>Item ID</li>
    <li>Name</li>
    <li>Qty</li>
    <li>Status</li>
  </ul>
  <ul class="order-details-row1">
    <li><div class="item-id-expand">+</div><div class="item-id-close">-</div>123456</li>
    <li>php 11 echo </li>
    <li>php 12 echo </li>
    <li>php 13 echo </li>
  </ul>
  <div class="order-details-row1-details">
    <ul class="order-details-row1-details-head">
      <li>Date</li>
      <li>Description</li>
    </ul>
    <ul class="order-details-row1-details1">
      <li> echo datetrack</li>
      <li>php echo </li>
    </ul>
  </div>
  <ul class="order-details-row1">
    <li><div class="item-id-expand">+</div><div class="item-id-close">-</div>654321</li>
    <li>php 21 echo </li>
    <li>php 22 echo </li>
    <li>php 23 echo </li>
  </ul>
  <div class="order-details-row1-details">
    <ul class="order-details-row1-details-head">
      <li>Date</li>
      <li>Description</li>
    </ul>
    <ul class="order-details-row1-details1">
      <li> echo datetrack</li>
      <li>php echo </li>
    </ul>
  </div>
</div>

最佳答案

像下面那样做(在函数内部使用 $(this)):-

$('.item-id-expand').click(function() {
  $(this).siblings('.item-id-close').css("display", "inline-block");
  $(this).hide();
  $(this).closest('.order-details-row1').next('.order-details-row1-details').show();
});
$('.item-id-close').click(function() {
  $(this).hide();
  $(this).closest('.order-details-row1').find('.item-id-expand').show();
  $(this).closest('.order-details-row1').next('.order-details-row1-details').hide();
});

工作 jsfiddle:- https://jsfiddle.net/wfjv2mhg/

关于javascript - 单击当前行以在 jQuery 中展开详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47344402/

相关文章:

javascript - 当 mousemove 事件发生时暂停动画

javascript - 使用 typescript 在集合列表中查找元素

javascript - 在不丢失js和css的情况下将html加载到div中

html - 使用 Bootstrap 4 忽略 Grid 和/或 Flexbox 中的表高度

javascript - 是否可以在 IE8 中模拟 Object.getOwnPropertyNames

javascript - 在元素之间移动 - 保持显示 : block attribute

javascript - 用Javascript/jQuery判断何时播放YouTube

javascript - Jquery Ajax Post 输入数据数组

javascript - 为什么 JavaScript touchstart 和 mousedown 事件同时触发?

html - 仅使用 CSS 将文本置于绝对定位的父 div 的左上角