理解jquery'show'和'hide'方法中的三元运算符。

理解jquery'show'和'hide'方法中的三元运算符。,jquery,Jquery,我只是在网上看一个下拉小提琴,下拉列表中有下面一行,如下所示: $(this).closest('.menu')[s.indexOf(g) !== -1 ? 'show' : 'hide'](); 现在我明白了三元运算符,我也明白了 $(this).closest('.menu')[0]; 是一种常用于派生第1个元素的语法,但我不太了解上述语法,行是如何执行的,还是仅仅: $(this).closest('.menu').hide(); 取决于三元运算符的结果 这很简单。 在JS中,

我只是在网上看一个下拉小提琴,下拉列表中有下面一行,如下所示:

 $(this).closest('.menu')[s.indexOf(g) !== -1 ? 'show' : 'hide']();
现在我明白了三元运算符,我也明白了

 $(this).closest('.menu')[0];
是一种常用于派生第1个元素的语法,但我不太了解上述语法,行是如何执行的,还是仅仅:

 $(this).closest('.menu').hide();
取决于三元运算符的结果

这很简单。 在JS中,您不仅可以使用object.field\u name访问对象成员,还可以使用object['field\u name']

因此,您的代码行可以翻译为:

if(s.indexOf(g) !== -1) {
   // $(this).closest('.menu').show()
   $(this).closest('.menu')['show']() 
} else {
   // $(this).closest('.menu').hide()
   $(this).closest('.menu')['hide']() 
}
基本上,.closest()所做的是遍历DOM元素并匹配上下文中给定的匹配项。下面是最接近的语法

.closest( selector [, context ] )
所以,您将在上下文中提供的任何条件都将匹配它并返回元素。就你而言

$(this).closest('.menu')[s.indexOf(g) !== -1 ? 'show' : 'hide']();

最接近的是遍历“.menu”的所有DOM元素,并将DOM元素与搜索框中输入的字母表匹配。如果菜单中的任何DOM元素包含该字母表,则它会将其属性设置为show(),否则会将其隐藏。

@PranavCBalan我不明白您想说什么@是的,它们是jQuery方法!