[英]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.