[英]statement in jQuery without semicolon
我有如下聲明
url : "expand.do?parentID=" + node.id,
該語句是我正在使用的jQuery樹插件的一部分。現在,它不允許我在該語句的末尾添加半冒號,並且需要將其放在If條件中以基於某個值調用操作。 如果我只使用這樣的語句,那么它可以正常工作。
那不是一個聲明,而是一個屬性初始化器 ,大概后面跟着其他屬性初始化器。 聽起來您在傳遞給函數的參數中使用它們,例如:
someFunctionCall({
prop1: "value 1",
prop2: "value 2"
});
屬性初始值設定項與后續的屬性初始值設定項之間以逗號分隔,而不是分號,這就是為什么添加分號將不起作用的原因。
屬性初始值設定項的右側是一個expression 。 如果需要在該表達式中執行條件邏輯,則可以使用條件運算符( ? :
,例如:
someFunctionCall({
prop1: someCondition ? "value 1" : "value 2",
prop2: "..."
});
如果您需要做的事情比在表達式中容易完成的事情復雜,或者需要在后續邏輯中訪問這些屬性,則可以將其拆分:
var params = {
prop2: "..."
};
if (someCondition) {
params.prop1 = "value 1";
} else {
params.prop1 = "value 2";
}
// and/or
if (params.prop2 === "foo") {
// ....
}
someFunctionCall(params);
在這種情況下,“ url”是對象內部的鍵。 根據您所看到的逗號,此對象中有多個鍵。
var foo = { url : "expand.do?parentID=" + node.id, bar: "blah"}
如果要在IF語句中使用url的值,則
if(foo.url){
//do stuff
}
嘗試這個;
{url : getURL(node),
和
function getURL(node){
if (node.something == 'something'){
var node_id = node.id
}else
{
var node_id = (node.id + 22)
}
return "expand.do?parentID=" + node_id
}
這很可能是JSON的一部分。 JSON語法如下所示:
{url : "expand.do?parentID=" + node.id}
通常,還有更多元素:
{
hello: 'world',
'I can even have spaces and Funny characters: 1 * 1 = 2 and PI: π': '3.14159265359'
}
但是,JSON實際上只是一個對象。
這意味着無論您擁有什么JSON,實際上都只是一個對象。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.