2016-04-03 171 views
1

我嘗試將CS​​S類添加到<li>元素,當我單擊按鈕但addClass不工作時。jQuery - addClass不向html元素添加類

這裏是我的JS:

$('.test').click(function(event) { 
    var centrum1 = $('.p17'); 
    $('section.bok-map').find(centrum1).addClass('active-region'); 
}); 

這該怎麼期待HTML代碼: enter image description here

問題出在哪裏? find()返回true。
這裏是演示:http://demo.vrs-factory.pl/mapDemo/

+0

其中是'.test'? –

+0

'.find()'應該返回'''包裹'jQ' – Rayon

+1

@Vertisan它適用於我。你有沒有在css的某個地方定義.active-region?如果我將它設置爲'.active-region {color:red}'它可以工作 –

回答

1

你有一對夫婦的錯誤,因爲你沒有選擇正確的元素,在selector的,因此長度爲0

首先,該類稱爲pl7p17和其次,在使用removeClass時,不要將.放在課程名稱的前面。當你使用removeClass時,可以理解你想要定位一個類,因此不需要你通過添加點來指定它。

<script> 
     var centrum1 = $('.pl7'); 

     $('.test').click(function(event) {    
      $('section.bok-map').find(centrum1).removeClass('pl7'); 
     }); 

</script> 

而且,它可能是值得注意的是,因爲你只引用$(.pl7)一旦你不必將它分配給一個變量。你也可以寫下如下。它是由你決定。

$('.test').click(function(event) {    
     $('section.bok-map').find('.pl7').removeClass('pl7'); 
    }); 
+0

沒有一點緩存'$('。pl7');' – Rayon

+0

@RayonDabre我只是修復他的代碼,因爲他有。 –

+0

我獲得多次選擇的緩存元素,但是緩存僅選擇一次的元素會更有效嗎? – 2016-04-03 10:56:36