jQuery show()和hide()查找页面上的多个链接

jQuery show() and hide() for multiple links on page

本文关键字:链接 查找 show hide jQuery      更新时间:2023-10-01

我正在编写一个网页,该网页将有三种形式的对应问题隐藏在div中-我在bootstrap的框架中使用了一个简单的.accounto切换来实现此功能。

  • 当用户选择"Ask a question"按钮时,它会向下切换(使用.accounto切换),并显示一个表单-使用hide(),"Ask an question"链接应该会消失。

  • 表单将有一个"提交"按钮来发布表单,但也有一个取消链接-取消链接应触发表单折叠(使用bootstrap.collapse),同时"提问"按钮应重新出现。

    我可以使用jQuery中的show()和hide()方法使其工作。然而,由于同一页面上有三个取消按钮,我不知道如何在每个链接上附加一个唯一的标识符来正确折叠正确的div

下面的小提琴是迄今为止最接近的解决方案。

See @DanielAlmeida Fiddle
https://jsfiddle.net/ek57ao0y/
    <div class='form form0'>
      <ul>
        <li><a href="#" class='showForm' data-target='.form1'>Show form   1</a></li>
        <li><a href="#" class='showForm' data-target='.form2'>Show form 2</a></li>
        <li><a href="#" class='showForm' data-target='.form3'>Show form 3</a></li>
        <li><a href="#" class='showForm' data-target='.form4'>Show form 4</a></li>
      </ul>
    </div>
    
    <div class='form form1'>
    
      <h3>Form 1</h3>
      <div>
        <textarea name="" id="" cols="30" rows="10"></textarea>
      </div>
    
      <p>
        <a href="#" class='cancel' data-target='.form0'>Cancel</a>
      </p>
    
    </div>
    
    <div class='form form2'>
    
      <h3>Form 2</h3>
      <div>
        <textarea name="" id="" cols="30" rows="10"></textarea>
      </div>
    
      <p>
        <a href="#" class='cancel' data-target='.form0'>Cancel</a>
      </p>
    
    </div>
    
    <div class='form form3'>
    
      <h3>Form 3</h3>
      <div>
        <textarea name="" id="" cols="30" rows="10"></textarea>
      </div>
    
      <p>
        <a href="#" class='cancel' data-target='.form0'>Cancel</a>
      </p>
    
    </div>
    
    <div class='form form4'>
    
      <h3>Form 4</h3>
      <div>
        <textarea name="" id="" cols="30" rows="10"></textarea>
      </div>
    
      <p>
        <a href="#" class='cancel' data-target='.form0'>Cancel</a>
      </p>
    
    </div>

您可以通过更改一些代码来实现这一点。。确保隐藏并显示正确的元素。下面的应该为你做这项工作。

$(function() {
  $(".submit-collapse").click(function(){
      $(".contact-form").show();
      $(".submit-collapse").hide();
  });
  $(".cancel-link").click(function(){
      $(".contact-form").hide();
      $(".submit-collapse").show();
  })
});
.contact-form{display:none;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="form-trigger top-spaced hidden-md hidden-sm hidden-xs">
  <div class="panel panel-default no-border">
    <div class="panel-heading">
      <h4 class="drk-grey">
        Have another question? <a class="accordion-toggle collapsed collapsed grn-btn full-window-btn submit-collapse" data-parent="#accordion" data-toggle="collapse" href="#question-about-app-process">Submit Your Question </a>
      </h4>
    </div>
    <form class="contact-form" action="/mailers/faq_contact_us" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="authenticity_token" value="L+9iNJ7+yKMBBIFsSv0nEzet6tit4bfxTaoUNbopARhIzoN/GL3fn40AaY1sV095jddz6fXzs0p20axPIfki+A==" />
          <div class="spaced">
            <label for="name">Name</label><input type="text" name="name" id="name" class="form-control" required="required" />
          </div>
          <div class="row spaced">
            <div class="col-md-6">
              <label for="email">Email</label><input type="email" name="email" id="email" class="form-control" required="required" email="true" />
            </div>
            <div class="col-md-6">
              <label for="primary_phone">Phone</label><input type="tel" name="primary_phone" id="primary_phone" class="form-control" required="required" phone="true" />
            </div>
          </div>
          <div class="spaced">
            <label for="message">Message</label><textarea name="message" id="message" class="form-control" required="required" rows="10" maxLength="1000">
</textarea>
          </div>
          <div class="spaced">
            <input type="submit" name="commit" value="Submit Question" class="btn btn-small text-center" /><a class="accordion-toggle collapsed collapsed cancel-link" data-parent="#accordion" data-toggle="collapse" href="#question-about-app-process">Cancel</a>
          </div></form>
  </div>

"我不知道如何将唯一标识符附加到每个链接以正确折叠正确的div"

您可以使用parent()函数。示例:这段代码删除了父目录中的所有内容…其中这个链接是:

<div>blablabla something <a href='#null' onclick="$(this).parent(''div'').remove();">Remove</a></div>

在您的原因中,您不会使用"remove",而是调用colapse函数。