【问题标题】:Toggle visibility of sibling element of $(this) element | No unique ID [jQuery]切换 $(this) 元素的兄弟元素的可见性 |没有唯一 ID [jQuery]
【发布时间】:2017-08-22 19:54:25
【问题描述】:

我需要div.edit-button 来切换其兄弟div.additionalFieldForm

请注意,页面上有多个div.edit-buttondiv.additionalFieldForm,但我想定位与单击的div.edit-button 位于同一“系列”中的div.additionalFieldForm

$(".edit-button").click(function () {

  // PROBLEMATIC SELECTOR BELOW:
  $(this).closest("div").prev().toggle();

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="customFieldUl">
  <li class="customFieldLi">
    <label class="top_title">Additional Field</label>
    <div class="additionalFieldForm">Content</div>
    <div class="edit-button">Edit</div>
    <div class="remove-button">Remove</div>
  </li>
  <li class="customFieldLi">
    <label class="top_title">Additional Field</label>
    <div class="additionalFieldForm">Content</div>
    <div class="edit-button">Edit</div>
    <div class="remove-button">Remove</div>
  </li>
</ul>

我尝试了其他选择器,但我不能专门针对被单击的编辑按钮的div.additionalFieldForm 兄弟。

编辑:我意识到一定存在潜在问题,因为选择器适用于 jsFiddle (http://jsfiddle.net/wf7jjoq7/),但不适用于我的网站,没有任何控制台错误。

【问题讨论】:

  • 要隐藏附加字段标签吗?
  • 不,我想在每次点击 div.edit-button 时切换 div.additionalFieldForm 的可见性。

标签: javascript jquery jquery-selectors toggle selector


【解决方案1】:

尝试使用siblings()

$(".edit-button").click(function () {  
  $(this).siblings(".additionalFieldForm").toggle();
});

【讨论】:

  • 这也不起作用,我尝试了多个选择器,似乎没有一个起作用。
【解决方案2】:

试试这个解决方案:

$(".edit-button").click(function () {

  // PROBLEMATIC SELECTOR BELOW:
  $(this).parent().find(".additionalFieldForm").first().toggle();

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="customFieldUl">
  <li class="customFieldLi">
    <label class="top_title">Additional Field</label>
    <div class="additionalFieldForm"></div>
    <div class="edit-button">Edit</div>
    <div class="remove-button">Remove</div>
  </li>
  <li class="customFieldLi">
    <label class="top_title">Additional Field</label>
    <div class="additionalFieldForm"></div>
    <div class="edit-button">Edit</div>
    <div class="remove-button">Remove</div>
  </li>
</ul>

【讨论】:

    【解决方案3】:

    li 是共同的父母。所以,

    $(".edit-button").click(function () {  
     $(this).closest("li").find(".additionalFieldForm").toggle();
    });
    

    【讨论】:

    • 这对我也不起作用,也没有控制台错误。
    猜你喜欢
    • 1970-01-01
    • 2014-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-18
    • 1970-01-01
    相关资源
    最近更新 更多