javascript onclick删除单个复选框

时间:2009-07-03 00:21:25

标签: javascript function

现在我确定这非常简单,我有一个名为“remove_deposit”的函数,如果它是真的我希望它使复选框为false。但我似乎无法让它发挥作用..

function remove_deposit() {
    if(document.getElementById('deposit').checked == true) {
        document.getElementById('deposit').checked == false;
    };
};

我至少在正确的轨道上?洛尔

3 个答案:

答案 0 :(得分:3)

function remove_deposit() {
    if(document.getElementById('deposit').checked == true) {
        document.getElementById('deposit').checked = false;
    };
};

您正在进行比较,而不是简单地将checked属性设置为false。

答案 1 :(得分:3)

function remove_deposit() {
    document.getElementById('deposit').checked = false
}

这就是你所需要的一切。你的代码无法工作的原因是因为你使用了两个等号,它是一个比较运算符,而不是一个等号,它是赋值运算符。

附录:我删除了if语句,因为它没有真正做任何有用的事情。如果您这样做是为了优化代码,那么我只想指出检查if语句可能比将复选框设置为false更慢。此外,您不需要在JavaScript中使用分号结束每一行。如果你想在一行上放置多个命令,你可以这样做,但除此之外没有必要。

结果在。

如果大多数时候运行javascript将复选框设置为false的人都将复选框设置为true,则跳过if语句会更快。否则,如果复选框的大部分时间都设置为false,则if语句会更快。如果比例为1:1,则不首选if语句。

该复选框必须至少有54%的时间设置为false才能使if代码更有效。

http://img33.imageshack.us/img33/4260/results.png http://img33.imageshack.us/img33/4260/results.png

旁注:如果它是一个复选框,它可能是一个表单,因此您也可以使用旧式方法document.formName.elementName而不是document.getElementById()来访问它。 因为form方法不像getElementById那样需要遍历DOM,所以我认为会更快。

结果在。

如果前面有0个ID,则document.test_form.checkbox(DTFC)比document.getElementById('checkbox')(GEBI)慢。如果前面有100个ID,则document.test_form.checkbox仍然比document.getElementById('checkbox')慢。

http://img8.imageshack.us/img8/6683/resultsw.png http://img8.imageshack.us/img8/6683/resultsw.png

我想这就解决了。

PS:这些都是使用Firebug在Firefox上测试的。我不能对Safari的WebKit,Konqueror的KJS,IE的专有引擎或Google Chrome的V8的效率提出任何要求。我猜它们应该有点类似于这些,但它们可能会有所不同。

答案 2 :(得分:1)

第3行的代码示例中有一个小错误。您使用了双等于==

应该是:

  

document.getElementById('deposit')。checked = false;