是否有一个相反的关键字这个

Is there an opposite of keyword this?

本文关键字:关键字 有一个 是否      更新时间:2023-09-26

是否存在与关键字this相反的关键字?

    $('.lt-buttonContainer button').click(function () {
        var $this = $(this);
        $this.addClass("button1Clicked");
        $!this.removeClass("button1Clicked"); 
    })

没有内置的方法来获取所有其他元素。使用not()将其从集合中移除。

var buttons = $('.lt-buttonContainer button');
buttons.click(function () {
    var $this = $(this);
    $this.addClass("button1Clicked");
    buttons.not($this).removeClass("button1Clicked"); 
});

不,在您的上下文中没有与this相反的关键字。

!this只是取this值的逻辑非,这不会解决代码中的问题。


你的问题确实需要一些澄清,但在你的具体例子中,如果你想要原始集合中的所有元素,但不是this的当前值,这就是你所说的相反,那么你必须自己计算该集合。

可以这样完成:

$('.lt-buttonContainer button').click(function () {
    $('.lt-buttonContainer button').removeClass("button1Clicked"); 
    $(this).addClass("button1Clicked");
});

或者,如果您真的想要原始集合中不属于this的元素的集合,那么您可以这样做:

$('.lt-buttonContainer button').click(function () {
    $('.lt-buttonContainer button').not(this).removeClass("button1Clicked"); 
    $(this).addClass("button1Clicked");
});

在此特定情况下,第二个代码片段中不需要额外的.not()操作,因为在将其添加回一个对象之前,它不会损害集合中所有对象的.removeClass()

下面的代码片段有帮助吗?

  $('.lt-buttonContainer button').click(function () {
    var $this = $(this);
    $('.lt-buttonContainer button').removeClass ("button1Clicked");
    $this.addClass("button1Clicked");
})

您可以使用toggleClass() jq方法并使用以下逻辑委托事件:

$('.lt-buttonContainer').on('click', 'button:not(.button1Clicked)', function (e) {
    $(e.delegateTarget).find('button.button1Clicked').add(this).toggleClass("button1Clicked");
});

如果元素button是兄弟元素:

$('.lt-buttonContainer').on('click', 'button:not(.button1Clicked)', function () {
    $(this).siblings('button.button1Clicked').add(this).toggleClass("button1Clicked");
});
相关文章: