jQuery 显示/隐藏规则

标签 jquery

基本上我试图显示隐藏的 div 和链接,但遇到了一些麻烦。所需功能如下:

  • 页面加载时,DIV ID“additional-linguals”被隐藏
  • 用户可以点击“选定的其他语言”链接,该链接将显示“其他语言”DIV
  • 点击此链接后,该链接将被隐藏
  • 然后,用户可以通过点击“隐藏”链接来选择隐藏“其他语言”DIV
  • 点击此链接后,“选定的其他语言”链接将重新出现

这是我到目前为止所做的:

标记:

<div class="row">
    <label for="native_language">Select</label>
    <select name="native_language" id="native_language">
      <option value="">Any</option>
      <option value="1">English</option>
    </select>

    <a class="show-additional-link" href="#">Select Additional Languages</a>
</div>

<div id="additional-languages" style="display: none;">
    <a class="hide-additional-link" href="#">[hide]</a>

    <div class="row">
        <!-- additional language checkboxes -->
    </div>
</div>

JS:

$('.show-additional-link').click(function(){
    $(this).parent().next().slideDown();
    $(this).hide();
    return false;
});

第一部分对我有用,但我正在努力让第二部分工作,即“隐藏附加链接”的功能。我已经尝试过:

$('.hide-additional-link').click(function(){
    $(this).parent().slideUp();
    $(this).parent().prev('.show-additional-link').show();
    return false;
});

DIV 被隐藏,但“show-additional-link”未显示。

最佳答案

更改此:

$(this).prev('.show-additional-link').show();

对此:

$(this).parent().prev("div.row").find('.show-additional-link').show();

.prev将严格针对前一个 sibling 。您的.show-additional-link按钮是前一个 div 的子级,因此基本上您需要上一级,获取前一个 div,然后找到 .show-additional-link后裔。

关于jQuery 显示/隐藏规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4627329/

相关文章:

javascript - 在同一页面中多次加载 jQuery

.net - ASP.NET ListView - 渲染 THEAD/TBODY 标签

javascript - 宽度基于百分比高度的方形 div

javascript - 查找第 n 个字符后的上一个 <p>?

javascript - "Autocomplete off"不适用于每个网页的最后控制

javascript - 将 div 的显示设置为无时,JQuery 导致闪烁

jquery - 有没有办法让这个 jquery 悬停动画更流畅?

javascript - 创建一个勾选框,然后通过单击自动勾选所有其他勾选框,并显示一个按钮

php - 当在不同页面上单击 anchor 标记时,如何更改 php 脚本中的 PHP 变量?

javascript - 将此对象存储在自定义私有(private)变量中