2015-06-23 64 views
0

我試圖切換/關閉某些表格單元格的內嵌背景色。 HTML表格是動態創建的,所以我不能添加任何類。它有自己的CSS,但一些TD也有內聯風格。我想要開啓/關閉這些內聯樣式,以便用戶可以選擇CSS樣式或內聯樣式。單元格可能具有不同的內聯背景顏色。切換內聯樣式背景色

我可以選擇具有內聯樣式類似這樣的陣:

$('.tbl_container td[style*="background-color"]'); 

但是,如果我嘗試這樣它消除了內聯的背景,但它並沒有恢復它:

$('.tbl_container td[style*="background-color"]').toggle(function(){ 
    $(this).css('background-color', ''); 
}); 

我想我必須使用hide()但我不知道如何。

+6

使用類。按照風格進行目標定位似乎是一個糟糕的主意。 – jcuenod

+0

'this.style.backgroundColor = this.style.backgroundColor? 「」:this.style.backgroundColor'。 –

+0

@Mr_Green請繼續擴展您的代碼。 JQuery不太好。請注意,關於下面的答案,bg的值在刪除背景後變成「未定義」。 – Nicero

回答

3

您可以使用class名稱來實現這些目的。

.color{ 
background-color: blue; 
} 

.color2{ 
background-color: white; 
} 

然後在jQuery,你可以做這樣的

$('.That_particular_td').on('click',function(){ 
    if($(this).attr('class')== 'color'){ 
     $(this).attr('class','color2'); 
    } 
    else if($(this).attr('class')== 'color2'){ 
     $(this).attr('class','color'); 
    } 
}); 

注:

可以使用jQuery On()方法動態創建的HTML元素

+0

正如所說的表是動態創建的,我可能不會添加類 – Nicero

+0

@Nicero這似乎不相關? – Curt

+0

查看編輯,可以使用jQuery的on()方法爲動態生成的html元素 – Abhinav