簡體   English   中英

jQuery中沒有分號的語句

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM