我正在寻找一些帮助来解释这行代码在jQuery中的作用;
myString += $(settings.mySelector,this).css('display') === 'none' ? 'closed' : 'not-closed';
我不熟悉语法和一些使用的运算符。
答案 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'
这使用条件(?:
)运算符,如果closed
或x === '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)
settings.mySelector
值假设包含一个Jquery选择器(参见http://api.jquery.com/category/selectors/,这部分是JQuery的基础)
$(settings.mySelector, this)
函数(是的,$
是一个函数)在给定当前选择上下文settings.mySelector
的情况下搜索this
选择器中指定的元素(参见{ {3}},这部分是JQuery的基础)
$(settings.mySelector,this).css('display')
获取所选元素的CSS'display'属性值
$[...].css('display') === 'none' ? 'closed' : 'not-closed';
是所谓的三元操作:如果css('display') === 'none'
为真,则返回'closed'
,否则返回'not-closed'
。
最后,myString
与+=
连接('closed'
)(如果未显示settings.mySelector
中描述的元素)或'not-closed'