jQuery语法帮助

时间:2011-01-18 17:09:48

标签: jquery

我正在寻找一些帮助来解释这行代码在jQuery中的作用;

myString += $(settings.mySelector,this).css('display') === 'none' ? 'closed' : 'not-closed';

我不熟悉语法和一些使用的运算符。

4 个答案:

答案 0 :(得分:3)

这意味着:

if ($(settings.mySelector,this).css('display') === 'none')
{
    myString = myString + 'closed';
}
else
{
    myString = myString + 'not-closed';
}

严格相等运算符(===)在不允许类型强制的情况下执行相等检查。

答案 1 :(得分:2)

$(settings.mySelector,this).css('display')

这将选择一个this子元素并匹配给定选择器的元素,然后提取CSS display属性的值。

x === 'none' ? 'closed' : 'not-closed'

这使用条件(?:)运算符,如果closedx === 'none',则评估为not-closed

最后,myString += y会将y的值附加到myString

答案 2 :(得分:0)

这是一个大学if / then声明。它说,myString + =(myString = myString +)第一次评估的结果,$(settings.mySelector,this).css('display') === 'none'

如果该语句的计算结果为true,意味着它们引用的元素是隐藏的,那么传回'closed',否则传回'open'

所以myString是+='closed' myString+='open'

答案 3 :(得分:0)

  1. settings.mySelector值假设包含一个Jquery选择器(参见http://api.jquery.com/category/selectors/,这部分是JQuery的基础)

  2. $(settings.mySelector, this)函数(是的,$是一个函数)在给定当前选择上下文settings.mySelector的情况下搜索this选择器中指定的元素(参见{ {3}},这部分是JQuery的基础)

  3. $(settings.mySelector,this).css('display')获取所选元素的CSS'display'属性值

  4. $[...].css('display') === 'none' ? 'closed' : 'not-closed';是所谓的三元操作:如果css('display') === 'none'为真,则返回'closed',否则返回'not-closed'

  5. 最后,myString+=连接('closed')(如果未显示settings.mySelector中描述的元素)或'not-closed'