2011-07-03 58 views
0

我試圖從一個特定的DIV在運行中刪除一個CSS類。我有以下的jQuery代碼:removeClass更改沒有反映在頁面上

<script type="text/javascript"> 
    $(document).ready(function() { 
     $('.intro').click(function() { 
      $('.row_2').removeClass('.last_row'); 
     }); 
    }); 
</script> 

..with以下HTML

<div class="row_1 intro">Intro Row 1</div> 
<div class"row_1 detail">Detail Row 1</div> 
<div class="row_2 intro last_row">Intro Row 2</div> 
<div class="row_2 detail last_row">Detail Row 2</div> 

在概念上,當用戶點擊任何intro的DIV應該從row_2的DIV刪除last_row類。但是,它似乎不起作用,因爲一旦用戶單擊intro DIV,在呈現的頁面上應用於last_row的CSS樣式不會從row_2 DIV中刪除。

這是jQuery代碼的問題,還是我需要做的其他事情,以便渲染頁面上的相關DIV將在飛行中更新以響應last_row類被刪除?

在此先感謝您的幫助!

+4

不應該是'removeClass('last_row')'沒有點嗎?或者這也是有效的? –

+0

@Kerrek SB:這是答案,你應該發佈它。編輯:太慢:) – thirtydot

+0

@Kerrek SB:並不意味着'偷'你的答案,當我發佈我沒有看到任何意見。 –

回答

3

使用$('.row_2').removeClass('last_row');而不是$('.row_2').removeClass('.last_row');它應該工作。

傳遞給.removeClass的參數應該只是該類的名稱,沒有點。

2

removeClass需要的類名作爲參數的空格分隔的列表,所以沒有點:

$(document).ready(function() { 
    $('.intro').click(function() { 
    $('.row_2').removeClass('last_row'); 
    }); 
}); 

See here瞭解詳情。

「點」 - 語法是選擇器挑選元素的機制。

0

在我的情況下,

$("#amt").removeClass('hide'); 

沒有任何區別;該領域仍然隱藏。

我不得不在ID前加上「body #form」參考以使其起作用。

$("body #form #amt").removeClass('hide'); 

工作,使該字段可見。我知道這是因爲,該頁面有多個對「#amt」的引用,並且第一個引用總是處理,導致removeClass無法正常工作。必須具體說明,如果有更多的參考資料到同一領域。希望這可以幫助。

相關問題