【问题标题】:Find and hide div (jQuery)查找和隐藏 div (jQuery)
【发布时间】:2009-12-22 23:53:28
【问题描述】:
<a rel="abc" href="#mydiv">link</a>
<div id="mydiv">content</div>

如果 rel="abc",则查找 ID 与 href 值匹配的元素并将其隐藏。

我的尝试:

$('[rel*=abc]').attr("href").hide();

感谢您的帮助!

【问题讨论】:

  • 同意,这听起来很像家庭作业
  • 我正在使用 Facebox 插件,我想在加载时自动隐藏内容 div。这不是家庭作业,我会尽可能发布代码,但在这种情况下我不知道。
  • 阅读关于属性选择器的文档:docs.jquery.com/Selectors
  • 这样滥用rel的原因是什么?像class="hidetarget" 这样的东西会更合适。

标签: jquery html hide href


【解决方案1】:
$( $("a[rel='abc']").attr("href") ).hide();

【讨论】:

  • 很好,比我刚写的更整洁。也许把它放在 $(document).ready(function(){}) 块中。
  • (如果您的 ID 包含 . 或 :,则注释将失败。)
【解决方案2】:
$("a[rel='abc']").click(function(event){
  event.preventDefault();
  var val = $(this).attr("href");
  $("div"+val).hide();
});

【讨论】:

    【解决方案3】:
    $('a[rel=abc]').click( function(event){
        event.preventDefault();
        $(event.target.href.substr(event.href.indexOf('#'))).hide();
    });
    

    如果单击此类链接,则隐藏相应的元素。

    编辑:测试

    【讨论】:

    • 可能想在其中添加 event.preventDefault() 。或者至少返回 false。
    【解决方案4】:

    $('a[rel=abc]').each(function() { $(this.href.substr(this.href.indexOf('#'))).hide(); });

    一些错误检查也很好。

    【讨论】:

      【解决方案5】:
      $("a[rel=abc]").each(function(i, ele) {
          $(ele.hash).hide();
      });
      

      或者如果您希望在点击时发生这种情况

      $("a[rel=abc]").click(function(e) {
          e.preventDefault();
          $(this.hash).hide();
      });
      

      【讨论】:

        【解决方案6】:
        var identifier = $('a[rel="abc"]').attr('href');
        $('#'+identifier').hide();
        

        我认为这可能会解决您的问题。不过我没有测试它。

        【讨论】:

        • 看起来你得到了-1,因为你的选择器将是“##mydiv”
        • 不确定是否会这样。感谢您的提示。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-15
        • 2019-03-03
        • 2012-01-19
        • 2011-11-06
        相关资源
        最近更新 更多