2012-06-06 23 views
1

點擊時,我想一個名爲「組」類添加到其有類「SomeClass的」所有元素的所有元素 - 但只,如:添加類具有一定階級上

<div class="someClass">SomeText</div> 
<div class="someClass">SomeOtherText</div> 
<div class="someOtherClass">SomeMoreText</div> 
<div class="someOtherClass">SomeMoreOtherText</div> 

如果用戶點擊包含類「SomeClass的」一個div應該對以下幾點:

<div class="someClass group">SomeText</div> 
<div class="someClass group">SomeOtherText</div> 
<div class="someOtherClass">SomeMoreText</div> 
<div class="someOtherClass">SomeMoreOtherText</div> 

,如果包含「someOtherClass」那些應該得到補充的「羣體」關於div的,用戶點擊。

我嘗試以下的jQuery - 失敗:

$("#someId").live("click", function() {  
    var selectedClass; 
    selectedClass = $(this).attr('class'); 

    $('.'+selectedClass).addClass('group'); 
    //...followed by more jQuery... 
}); 

我也想我的運氣:

$("#someId").live("click", function() {  
    $(this).attr('class').addClass('group'); 
    //...followed by more jQuery... 
}); 

...這並沒有工作,要麼:(

+2

如果一個元素有一個以上的班? –

+0

爲什麼你在你的單引號前加反斜槓。正如你可以從你的問題的語法突出顯示,這不是有效的JavaScript。 – Phrogz

+0

#someId是什麼?按鈕? –

回答

2

你應該考慮到說明divs擁有多個類的可能性 - 只要連續點擊兩次div就會發生這種情況:

​$('div').on('click',function(e) { 
    var cl = $(this).attr('class'), 
     carr = cl.split(/\s+/); 
    for (var i=0; i<carr.length; i++) { 
     $('div.'+carr[i]).addClass('newclass'); 
    }; 
});​​​​​ 

http://jsfiddle.net/FcXu5/

0
$('div').click(function() {  
    var selectedClass; 
    selectedClass = $(this).attr('class'); 
    $('.'+selectedClass).addClass('group'); 
});​ 

http://fiddle.jshell.net/H3hs9/1/

那樣?

0

假設被點擊的div時恰好有一個類:

$('div').click(function(){ 
    $('.group').removeClass('group'); //assuming you want this 
    $('.'+this.className).addClass('group'); 
}); 

如果他們可能有很多:

$('div').click(function(){ 
    $('.group').removeClass('group'); //assuming you want this 
    var classes = this.className.split(/\s+/); 
    var select = $.map(classes,function(c){ return "."+c }).join(); 
    $(select).addClass('group'); 
}); 
0

試試這個

$(document).ready(function(){ 
     $('.someClass').on('click',function(){ 
      var $this = $(this); 
      if($this.attr('class')=='someClass'){ 
      $this.addClass('group'); 
      } 
     }); 
    }); 
0

我的解決方案使用的觸發類的方法和關閉。

HTML

<div class="item someclass">Hello</div> 
<div class="item someclass">Hello</div> 
<div class="item someclass">Hello</div> 
<div class="item someclass">Hello</div> 
<div class="item someclass">Hello</div> 
<div class="item someclass">Hello</div> 

CSS

.group{ 
color:green; 
}​ 

JS

jQuery('.item').click(function(){ 

    if(!jQuery(this).hasClass('group')){ 
    jQuery(this).addClass('group') 
    } 
    else 
    { 
    jQuery(this).removeClass('group') 
    } 
    });​ 

當你點擊帶班 「項目」 的一些元素搜索就可以了,如果有 「羣體」。如果爲true,則刪除該類,如果爲false,則添加該類。

在「item」元素上使用div單擊事件時,如果您只想添加具有特定組元素的類,那就很好。

這裏的小提琴

http://jsfiddle.net/nNS44/

+0

類名可以是「item」或其他不同的東西。正如我的例子中的「someClass」或「someOtherClass」。但是,再次,它可能完全不同於那些。它應該只聽點擊元素。 – jrn

+0

我不明白.... como asi? – chepe263

0
$(document).ready(function(){ 
     $('.someOtherClass').on('click',function(){ 
      $('.someClass').addClass('group'); 

     }); 
    }); 

的jsfiddle:http://jsfiddle.net/Ekx7Z/2/

0

嘗試一些jquery的,像這樣:

$("#someId").click(function(){ 
    $("div.someClass").addclass("group"); 
}); 
相關問題