jquery - 连接 CSS 选择器

标签 jquery css jquery-selectors css-selectors

有没有更聪明的方法,我可以使用 $self 而不是在 $('.foo.bar') 中使用 foo。 .. ?感觉额外的 foo 是多余的。我不想查看我已经找到的一些选择器。

$('.foo').on('click', function () {
    $self = $(this);
    $('.foo.bar').removeClass('bar'); // Works but feels wrong.
    //$self('bar').removeClass('bar'); // Use something that doesn't uses 'foo' again..
});

编辑:

标记代码:

<div class="foo bar">
</div>

注意 $('.foo.bar')foobar 之间没有空格。

最佳答案

所有当前的答案都假定点击的 .foo 将是唯一 .foobar

...如果情况总是如此,那就太好了,但请注意,这些答案不是您所拥有的内容的直接替代(因为您正在寻找所有 .foo 属于 bar 类)。以下更多直接替换:

var foos = $('.foo').on('click', function () {
    $self = $(this);

    foos.filter('.bar').removeClass('bar');
});

...但请注意,此代码仍然不是直接替换,因为您的代码将获得.foo 在触发点击事件时在 DOM 中,而我建议的替代方案将在点击事件被绑定(bind)时获取 .foo.


此外,在删除该类之前检查 jQuery 元素是否具有类,有点多余;因为如果你告诉它从一个元素中删除一个不存在的类,jQuery 不会吐出来;它不会做任何事情。

if (self.hasClass('bar')) {
    self.removeClass('bar');
}

...相反,只需这样做:

self.removeClass('bar');

关于jquery - 连接 CSS 选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28539484/

相关文章:

javascript - ajax加载后无法刷新某一特定div(MVC系统)

javascript - JQuery 根据另一个 div 的点击切换元素

javascript - 使用 CSS 或 Javascript 将页脚固定到浏览器的底部 10%?

jQuery - 获取 parent 孙子的 value()

JavaScript removeClass 不适用于 bootstrap-select

javascript - 从另一个函数调用 javascript 函数不起作用

css - 如何在元素中定位 CSS Sprite 背景图像?

javascript - jQuery附加不包含子元素的div

javascript - 如何使用jquery选择某些文本节点?

jquery - 选择连接 : if selected option have value 1, 显示另一个选择