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 をクリックすると、クラス「group」が追加されます。

次の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...
});

...どちらも機能しませんでした:(

4

7 に答える 7

2

div が複数のクラスを持つ可能性を考慮する必要があります。これは、div が連続して 2 回クリックされるたびに発生します。

​$('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/

于 2012-06-06T20:47:46.933 に答える
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')
    }
    });​

クラス「item」の要素をクリックすると、クラス「group」があるかどうかが検索されます。trueの場合はクラスを削除し、falseの場合はクラスを追加します。

「item」要素を持つdivでクリックイベントを使用すると、特定の要素グループを持つクラスのみを追加する場合に役立ちます。

ここのフィドル

http://jsfiddle.net/nNS44/

于 2012-06-06T20:50:41.977 に答える
0
 $(document).ready(function(){
        $('.someOtherClass').on('click',function(){
            $('.someClass').addClass('group');

        });
    });

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

于 2012-06-06T21:14:18.503 に答える
0

クリックされている div に 1 つのクラスがあると仮定すると、次のようになります。

$('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');
});
于 2012-06-06T20:46:11.583 に答える
0

これを試して

$(document).ready(function(){
        $('.someClass').on('click',function(){
            var $this = $(this);
            if($this.attr('class')=='someClass'){
            $this.addClass('group');
            }
        });
    });
于 2012-06-06T20:46:20.770 に答える