【问题标题】:Using "this" with jQuery Selectors在 jQuery 选择器中使用“this”
【发布时间】:2010-09-19 21:14:00
【问题描述】:

我有一些看起来像这样的 HTML:

<ul class="faq">
    <li class="open">
        <a class="question" href="">This is my question?</a>
        <p>Of course you can, it will be awesome. </p>
    </li>
</ul>

使用 CSS 我将p 标签设置为display:none;。我想在单击anchor 时使用jQuery 显示或隐藏p 标记,但是我在使用同级选择器时遇到了一些问题。

只是想让选择器工作,我试过了:

$("a.question").click(function () {
    $(this + " ~ p").css("background-color", "red");
});

测试一下。看起来,兄弟选择器不能真正那样使用,而且由于我对 jQuery 完全陌生,我不知道实现这一点的适当方法。

【问题讨论】:

    标签: javascript jquery css-selectors


    【解决方案1】:

    我想在点击锚点时使用jQuery显示或隐藏'p'标签

    既然你提到你想在点击锚点时切换“p”标签,我会这样做:

      $("a.question").click(function (event) {
          $(this).siblings('p').show(); //toggle the p tags that are siblings to the clicked element
          event.preventDefault(); //stop the browser from following the link
      });      
    

    【讨论】:

    • 啊,我一直想知道消费点击事件的 jQuery 版本是什么。谢谢!
    • 嘿,谢谢,这让我不必进一步思考!我最终选择了 slideToggle() 而不是 show(),主要是因为我希望人们认为我很酷。 ;)
    【解决方案2】:

    尝试使用:

    $(this).siblings('p').css()
    

    【讨论】:

    • 甜,这是完美的(而且比毫无结果的谷歌搜索要快得多)。谢谢!
    • lazyweb 很棒不是吗? :) 哦,请记住,如果您添加更多,它将对
    • 中的 every 'p' 标签执行此操作。
  • 不苦吗?别担心,我的评论没有建设性。
  • (5 年后...)为了弥补你,Ben,我大约 6 个月前注册了 NSScreencasts,并且获得了很多 ;-)。
  • 【解决方案3】:
    $(this).next("p").css("...")
    

    上面的“p”是可选的,如果你只想要 DOM 中的下一个非空白节点。

    【讨论】:

      猜你喜欢
      相关资源
      最近更新 更多
      热门标签