2015-09-26 238 views
1

你好計算器社區,JavaScript if if語句變量

我想通過if語句和其他變量創建一個變量,但它不起作用。如果有人可以幫助我,我會非常感激。

這是我的代碼來創建returntouser變量

function userinput() { 
    return returntouser = metaTitle + "\n" + metaDescription + "\n" + metaKeywords; 
} 

現在,我試圖讓IF函數了「metaTitle」變量。如果用戶沒有在textform中寫入任何內容,那麼「metaTitle」變量將不會被添加到「returntouser」變量中。

function userinput() { 
    return returntouser = if (document.getElementById("userinputTitle").length > 0) { return metaTitle } + "\n" + metaDescription + "\n" + metaKeywords; 
} 

誰能告訴我怎樣才能if函數添加這個無論是「metaTitle」變量添加到「returntouser」變量或不

+0

一個if語句就是這樣的:***語句***。你不能把它放在表達式中。您可以使用三元表達式,但爲此,最好將整個if語句放在最後一行之前。對自由變量'returntouser'的賦值看起來很奇怪且不必要。您已經從函數返回值。看起來你試圖太難以將所有代碼放在一行上。 – Paulpro

+2

你可以使用三元運算符? – Script47

+1

[如何在JavaScript中編寫內聯IF語句?](http://stackoverflow.com/questions/10270351/how-to-write-an-inline-if-statement-in-javascript) –

回答

1

你必須這樣做,在單獨的步驟。

function userinput() { 
    var returntouser = ""; 
    if (document.getElementById("userinputTitle").length > 0) { returntouser += metaTitle } 
    return returntouser + "\n" + metaDescription + "\n" + metaKeywords; 
} 
+0

感謝幫助:) – Truzze

6

您可以使用? - 運算符進行條件內聯。它也被稱爲運營商的三元組。更多信息here

例子:

value = 10 > 3 ? "10 is bigger than 3" : "10 is smaller than 3"; 
+1

爲什麼變量名前的字符串? – Script47

+0

感謝您的幫助:) – Truzze

1

,請嘗試把你的行動:

function userinput() { 
    var meta = metaDescription + "\n" + metaKeywords; 
    if (document.getElementById("userinputTitle").length == 0) return meta; 
    return metaTitle + "\n" + meta; 
} 

或出於學習目的:

function userinput() { 
    var meta = [metaDescription, metaKeywords]; 
    if (document.getElementById("userinputTitle")) meta.unshift(metaTitle); 
    return meta.join('\n'); 
} 

或更現代的瀏覽器

function userinput() { 
    var mt = document.getElementById('userinputTitle')? `${metaTitle}\n` : ''; 
    return `${mt}${metaDescription}\n${metaKeywords}`; 
} 
+0

感謝您的幫助:) – Truzze

+0

我沒有注意到模板字符串,並認爲您暗示三元運算符只在現代瀏覽器中可用。 – Paulpro

+0

模板在牙齒中也有點長,但在ES6中只是標準化的。 ergonaut已經覆蓋了轉檯,所以我沒有打擾。 – rism