2017-06-04 125 views
0

我正在嘗試寫一些jQuery以刪除選定框的默認選定選項一次。目前$("#edit-field option:selected").remove(); removed = true;};工程,但我很難把它放入一個if/else語句。

$(document).ready (function remove() { 
"use strict"; 
var removed = false; 
if (removed = false) { 
$("#edit-field option:selected").remove(); removed = true;}; else { 
remove();}} 

任何人都可以看到我的代碼有什麼問題嗎?

+2

'='是賦值運算符,你想''==比較... – CBroe

回答

2

你的錯誤是很常見的初學者的錯誤比較操作。

=總是指定一個值,您不能在比較中使用它。使用=====來比較值。所以,簡單的解決將是:像if (x == true) ...if (x == false) ...

if(removed === false) 

但是...比較是一個反模式。不要這樣做。 if (x) ...if (!x) ...就足夠了。

此外,您的整個代碼是多餘的。不要保存一個全局變量來存儲你是否刪除了某些東西。這沒有必要。

當您嘗試刪除某些東西兩次或嘗試刪除根本不存在的東西時,jQuery不會產生錯誤。這是更好:

$(document).ready(function remove() { 
    $("#edit-field option:selected").remove(); 
}); 
+0

您提供的代碼示例是完全相同正如我開始,但由於某種原因jQuery是逐個刪除選擇框中的所有值,它仍然是。儘管我已經通過使用'$(document).ready(function remove(){「#edit-field option:selected」)解決了我的問題。remove(「:contains('Text in field ')「); });' – Krypton

+0

很高興聽到你畢竟有工作! – Tomalak

相關問題