好吧我和朋友一起工作,他给我发了一个js文件,里面包含一个包含三元运算符的变量。我无法弄清楚如何将其更改为if..else。你能帮忙吗?
我也注意到“。length”之后没有正常的“()”,有原因吗?
var nextRadioTab = activeRadioTab.next().length ? activeRadioTab.next() : $('#contentslider div:eq(0)');
答案 0 :(得分:4)
这有用吗?
if (activeRadioTab.next().length) {
var nextRadioTab = activeRadioTab.next();
} else {
var nextRadioTab = $('#contentslider div:eq(0)');
}
在JavaScript中,对象或多或少只是指向值的名称列表。每个名称 - 值对称为“属性”。
这些值本身可以是任何类型的值,包括函数。如果属性的值是函数,我们称之为“方法”。
假设您希望对象跟踪点的x和y坐标。
var point = { x: 10, y: 20 };
在这种情况下,我们可以使用简单的值,因为我们不需要任何比获取值(alert(point.x)
)或设置值(point.x = 10
)更高级的行为。
jQuery旨在让您的代码在不同的浏览器上运行;不同的浏览器在很多情况下表现不同,所以jQuery不能让你设置
element.text = "hello world"
因为取决于对象element
的类型,它需要在不同的浏览器上修改不同的属性。出于这个原因,jQuery使你可以使用这样的方法:
element.text("hello world")
jQuery对象的.length
属性很简单;它由jQuery本身控制,不需要在不同的浏览器中做任何特殊的事情。因此,您只需直接使用它。如果他们需要更复杂的行为,他们会使用函数/方法代替:
var myObject = { length: 2 }; // myObject.length
var myObject = { length: function() { return 2; } }; // myObject.length()
答案 1 :(得分:1)
var nextRadioTab;
if (activeRadioTab.next().length)
nextRadioTab = activeRadioTab.next();
else
nextRadioTab = $('#contentslider div:eq(0)');
length
是next()
返回的属性,很可能是与activeRadioTab
相同类型的对象。