簡體   English   中英

javascript onclick刪除單個復選框

[英]javascript onclick remove single checkbox

現在,我確定這非常簡單,我有一個名為“ remove_deposit”的函數,如果該函數為true,我希望它使復選框為false。 但我似乎無法使其正常工作。

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

我至少在正確的軌道上嗎? 大聲笑

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

您在進行比較,而不是簡單地將checked屬性設置為false。

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:這些都在Firefox上使用Firebug進行了測試。 對於Safari的WebKit,Konqueror的KJS,IE的專有引擎或Google Chrome的V8的效率,我無能為力。 我猜測它們應該與這些相似,但它們可能有所不同。

您在第3行的代碼示例中有一個小錯誤。您使用了雙等於==

它應顯示為:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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