2017-09-08 74 views
3

我有這個JavaScript來使用下面的表格更改桌子上的高亮顏色。默認顏色是綠色的,我可以通過點擊顏色按鈕來選擇我想要的顏色。此代碼僅適用於輸入爲class="selector"。我希望這個函數也可以用於輸入class="all",所以我複製了代碼並在第二個副本中將$('.selector')更改爲=>$('.all')。但我無法得到我想要的結果,代碼不適用於class="all"選擇。我希望顏色變化也可以用於「全選」。任何想法如何實現?請。謝謝。突出顯示「全選」的顏色變化

小提琴:https://jsfiddle.net/hfh6smf8/

的Javascript:

$(function() { 
    $('.selector').on('click', function(e) { 
    var checked = this.name; 
    var selectedColor = ''; 

    if (this.checked) { 
     selectedColor = $('#nextColor').val(); 

     } 
    $('td').filter(function() { 
     return this.textContent == checked; 
    }).css('background-color', selectedColor); 
    }); 
}); 

HTML表單:

<form id="form1" name="form1" method="post" action=""> 
    <label><input type="checkbox" name="SelectAll" class="all" />SelectAll</label> 
    <label><input type="checkbox" name="M" class="selector" />M</label> 
    <label><input type="checkbox" name="n" class="selector" />n</label> 
    <label><input type="checkbox" name="nn" class="selector" />nn</label> 
    <label><input type="checkbox" name="R" class="selector" />R</label> 
</form>  
+0

您需要爲'.all'做另一個點擊事件,它會循環所有的'.selector'類並且每個都執行顏色更改,使用參數創建一個函數並將代碼移入它,以便將代碼最小化爲循環並改變顏色 – Se0ng11

+0

我嘗試了與.all相同的腳本。它沒有改變結果。 – Max

+0

不是很確定你的意思是在那個 – Se0ng11

回答

1

https://jsfiddle.net/hfh6smf8/7/

這是你努力實現什麼?如果是的話,如果你把所有相關的html 以及你想檢查所有的複選框會很容易嗎?

$('.all').on('click', function(e) { 
    var checked = this.name; 
    var selectedColor = ''; 

    if (this.checked) { 
     selectedColor = $('#nextColor').val(); 

     } 
    $('td').css('background-color', selectedColor); 
    }); 

這是回答你一個問題,你需要知道如何與selector玩,它會幫助你很多,因爲這只是樣品,可以達到你想要做什麼,你可以做更具體的選擇

https://jsfiddle.net/5z7zbaq2/2/ 變化

$('td').css('background-color', selectedColor); 

$('#form1').find('td').css('background-color', selectedColor); 
+0

是的,只需要稍微修改一下它就可以工作,謝謝@ Se0ng11 – Max

+0

但是,它的確如此。https://jsfiddle.net/5z7zbaq2/它se即使它們不在表格中,也會將表格中的所有數據都列出。 – Max

+0

更新回答來自@Max – Se0ng11

相關問題