1

我想为所有具有“someClass”类的元素添加一个名为“group”的类 - 但仅限于,例如:

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

...这也不起作用:(

4

7 回答 7

2

您应该考虑到 div 具有多个类的可能性——每当连续单击 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/

于 2012-06-06T20:47:46.933 回答
0
$('div').click(function() {    
    var selectedClass;
    selectedClass = $(this).attr('class');
    $('.'+selectedClass).addClass('group');
});​

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

像那样?

于 2012-06-06T20:44:26.563 回答
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');
});
于 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 回答
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 上使用 click 事件,当您只想添加具有特定元素组的类时,这是很好的选择。

小提琴在这里

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

像这样尝试一些jquery:

$("#someId").click(function(){
    $("div.someClass").addclass("group");
});
于 2012-06-06T21:49:53.707 回答