2017-06-04 73 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

相关问题