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