【问题标题】:Using $(this) with multiple selectors, can you refer to one and not the other?将 $(this) 与多个选择器一起使用,你能引用一个而不是另一个吗?
【发布时间】:2011-07-24 03:43:57
【问题描述】:

假设你有两个这样的选择器:

$(".class1, .class2").click(function() {
    $(this).hide();
});

似乎$(this) 指的是两个选择器。有没有办法只引用一个而不引用另一个? (我的意思不是只使用.class1.class2,因为如果这些类中有多个元素,我希望它引用被点击的元素。)

我刚刚意识到你可以写两次相同的东西,但这不是很好:

$(".class1").click(function() {
    $(this).hide();
    $(.element).show();
});

    $(".class2").click(function() {
       $(.element).show();
});

【问题讨论】:

  • 这其实是一个很好的问题。 +1

标签: javascript jquery jquery-selectors css-selectors


【解决方案1】:

不,在这里:

$(".class1, .class2").click(function() {
    $(this).hide();
});

回调函数中的this仅指被点击的单个元素。

点击按钮,亲自查看:http://jsfiddle.net/ambiguous/GyEck/

【讨论】:

    【解决方案2】:
    if ($(this).is(".class2"))
    

    【讨论】:

    • 虽然这解决了问题中解决的问题,但应该注意问题本身并不准确——因为 mu 太短 mentions, this 仅指点击。
    • 你也可以使用$(this).hasClass("class2")
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-21
    • 2011-12-06
    • 1970-01-01
    • 2015-05-09
    • 2011-12-14
    • 2017-05-09
    • 1970-01-01
    相关资源
    最近更新 更多