2011-10-12 90 views
0

我想在下面的div中使用JQuery添加一個類,我不知道我做錯了什麼。JQuery添加類

<div class="flash alert">You need to sign in or sign up before continuing.</div> 

我想刪除警報類並添加類警報消息和錯誤。我一直在使用下面的代碼一直沒有工作:

$('div flash alert').removeclass('.alert').addClass('.alertMessage .error'); 

我不能直接編輯CSS,如果我能走這條路我會的。

這裏是我寫的正是jsfiddle鏈接。它的工作原理中的jsfiddle但不是我的網頁上:http://jsfiddle.net/uR3gz/2/下面是它看起來像我的網頁上:​​

注:我使用同色器件軌和我試圖擺脫默認警報消息。

說明我得到了整個事情由一個匿名函數進行包裝,像這樣的工作:

$(function() { 
    $('div.flash.alert').removeClass('alert').addClass('alert-message error'); 
}); 
+0

嘗試從$('div flash alert')中刪除DIV。只需使用$('flash alert')即可。 – Sparky

+0

你不需要使用'。'在jQuery方法(如addClass或removeClass)中使用類名時使用符號。 – kinakuta

回答

3

有很多這種問題。

$('div flash alert') 

,其選擇內部內div元件flash元件alert元件。我想你想要div.flash.alert

.removeclass('.alert') 

你需要removeClass(物質資本)和'alert'。你不需要點,因爲它不是類名的一部分。

.addClass('.alertMessage .error'); 

再次,你不需要點。


所以最終的解決方案可能是這樣的:

$('div.flash.alert').removeClass('alert').addClass('alertMessage error'); 

所以,在你所有的語法問題之外,你正在運行的文件之前的代碼被分析,所以元素你試圖選擇不存在。對此的解決方案是使用一個事件監聽器上documentready事件:

$(document).ready(function(){...}); 
$(function(){...}); // shortcut for the above code 
+0

我添加了下面的$('div.flash.alert')。removeClass('alert')。addClass('alertMessage error');它仍然不起作用。 – tomciopp

+0

定義「不起作用」。你能向我們展示一個例子嗎? jsfiddle.net對此很有幫助。 – lonesomeday

+0

它是有效的JavaScript,但由於某些原因,它不適用於我的Rails應用程序。當我將這行添加到我的主JavaScript文件中時,就像書面文件和加載頁面的JavaScript一樣,它根本不會改變CSS。我仍然得到沒有變化的同一個div。它從字面上不會改變文件。 – tomciopp

0

嘗試

$('div .flash .alert').removeclass('alert').addClass('alertMessage error'); 
0
$('div.flash.alert').removeClass('alert').addClass('alertMessage error'); 

注意這改變了所有的div類=‘閃光警報’如果你想改變一個特定的div,最好給它一個id,那麼你可以選擇它$('#myId')