Javascript jquery选择器后面的括号和括号是什么意思?

Javascript jquery选择器后面的括号和括号是什么意思?,javascript,jquery,syntax,Javascript,Jquery,Syntax,我遇到了这行代码,我不明白它的意思: $("#theAppContainer")[s > u ? "addClass" : "removeClass"]("something"); 我知道第一部分是选择名为appcontainer的元素,如果s>u,第二部分的计算结果是“addClass”,但我无法理解这行代码的总体功能。$(“#appcontainer”)返回一个jquery对象 jqueryObject[“addClass”]与jqueryObject.addClass 因此,jqu

我遇到了这行代码,我不明白它的意思:

$("#theAppContainer")[s > u ? "addClass" : "removeClass"]("something");
我知道第一部分是选择名为appcontainer的元素,如果s>u,第二部分的计算结果是“addClass”,但我无法理解这行代码的总体功能。

$(“#appcontainer”)
返回一个jquery对象

jqueryObject[“addClass”]
jqueryObject.addClass

因此,
jqueryObject[“addClass”]
返回jquery对象上的addClass方法

然后使用
(“something”)
将参数传递到并执行该方法

那么你基本上是在做什么

var myJqueryObject = $("#theAppContainer");
if(s > u) {
    myJqueryObject.addClass("something");
}
else {
    myJqueryObject.removeClass("something");
}
,括号调用作为该属性值的函数。这相当于:

var container = $('#theAppContainer');

if(s > u) {
    container.addClass('something');
} else {
    container.removeClass('something');
}
另外,请不要编写这样的代码。=)

此外,还可以使用第二个
开关
参数:

$('#theAppContainer').toggleClass('something', s > u);

方括号符号

$(“#元素”)[“隐藏”](700)

符号:

$('#元素')。隐藏(700)

另一件事叫做三元运算符

进行语句比较,返回布尔值,
其中
s>u
是一条语句,根据结果使用值:

语句?如果是真的,用这个;如果是假的,用那个

如果
s>u
使用
'addClass'
否则使用
'removeClass'

这意味着您将获得
$(“#theAppContainer”)[“addClass”](“某物”)如果
s>u

$(“应用容器”)[“removeClass”](“某物”)
if
s===u | | sIt是一个三元运算符,就像if/else一样,因此如果
s
大于
u
,则选择addClass等。作为旁注,应该注意,toggleClass有一个开关,所以您可以只执行
$(“#应用容器”)。toggleClass('something',s>u)我确实很喜欢三元的,但在这种情况下,是的,这有点可笑哈哈,同意!我不知道,我有点喜欢。这甚至不是我见过的最疯狂的JQuery单内衬,至少,它们几乎是相同的。@ SandyGifford:表演应该是最后考虑的立场!无论如何,我添加了jQuery风格的做事方式。谢谢你让我看:)我的意思是,让我们在这里真实一点。如果你使用的是JSPerf,你的肛门保持力就足够了。我们不必假装将脚本的时间缩短1/1000秒是合乎逻辑的,但我们还是这样做了。然而,即使是执行者也不能给这种模式以优势=如果你说的是我的答案,我并没有说永远不要使用括号符号。在这种情况下,这只是一个愚蠢的选择。
$("#theAppContainer").addClass("something");
$("#theAppContainer").removeClass("something");