最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - How to change multiple div classes with jquery? - Stack Overflow

programmeradmin7浏览0评论

I'm a total noob struggling so hard to learn jquery and javascript. I think I have a very hard goal for this code and need help bad. I've spent 15+ hours trying to figure this out but still don't see the solution.

Here is my example code:

<div class="daddy">

  <div id="reset" onclick="changeAllFatsToSkinny">reset</div>

  <div class="skinny baby" onclick="weightChange(event)">Button01</div>
  <div class="fat baby" onclick="weightChange(event)">Button03</div>

  <div id="random" class="no class here">random text</div>

</div>

Goal: The click event "weightChange" changes the div class from the default "skinny baby" to "fat baby". I have the following code working…

function weightChange (event) {
var element = event.currentTarget;
element.className = (element.className == 'skinny baby') ? 'fat baby' : 'skinny baby';
}

This code may be overkill but it is working for now. The problem is that I can't figure out how to find and replace the class "fat baby" back to "skinny baby" in all the children of the div "daddy" by clicking on the "reset" div. I got it to work somewhat but it changed the class on ALL divs including "random" divs.

I have looked at a bunch of jquery code and think I need to string together the

.find()
.hasClass()
.removeClass()
.addClass() or maybe just toggleClass()

to do all this. I think I need some kind of "if then" statement too. My problem is that I don't know enough Javascript to get the syntax right. I suck and I am very sad because of this problem. Please, ow please help me!? Thank you greatly in advance.

P.S. I honestly need someone to write out the solution for me because I have tried so much to piece together several demo examples without getting the desired results. I don't really even understand how to make a click event yet. I have been reduced to an infant by this problem. Sorry.

I'm a total noob struggling so hard to learn jquery and javascript. I think I have a very hard goal for this code and need help bad. I've spent 15+ hours trying to figure this out but still don't see the solution.

Here is my example code:

<div class="daddy">

  <div id="reset" onclick="changeAllFatsToSkinny">reset</div>

  <div class="skinny baby" onclick="weightChange(event)">Button01</div>
  <div class="fat baby" onclick="weightChange(event)">Button03</div>

  <div id="random" class="no class here">random text</div>

</div>

Goal: The click event "weightChange" changes the div class from the default "skinny baby" to "fat baby". I have the following code working…

function weightChange (event) {
var element = event.currentTarget;
element.className = (element.className == 'skinny baby') ? 'fat baby' : 'skinny baby';
}

This code may be overkill but it is working for now. The problem is that I can't figure out how to find and replace the class "fat baby" back to "skinny baby" in all the children of the div "daddy" by clicking on the "reset" div. I got it to work somewhat but it changed the class on ALL divs including "random" divs.

I have looked at a bunch of jquery code and think I need to string together the

.find()
.hasClass()
.removeClass()
.addClass() or maybe just toggleClass()

to do all this. I think I need some kind of "if then" statement too. My problem is that I don't know enough Javascript to get the syntax right. I suck and I am very sad because of this problem. Please, ow please help me!? Thank you greatly in advance.

P.S. I honestly need someone to write out the solution for me because I have tried so much to piece together several demo examples without getting the desired results. I don't really even understand how to make a click event yet. I have been reduced to an infant by this problem. Sorry.

Share Improve this question asked Sep 18, 2011 at 23:04 William LarsenWilliam Larsen 151 silver badge3 bronze badges
Add a ment  | 

1 Answer 1

Reset to default 5

Here's the code you are looking for:

$('#reset').click(function(){
    $('.daddy .baby').removeClass('fat').addClass('skinny');
});

You claim to be using jQuery, but you are not utilizing it in your code at all.

You can rewrite your code as follows:

$('.baby').click(function(){
    $(this).toggleClass('fat skinny');
});

There's absolutely no need for inline javascript.

Here's the Fiddle: http://jsfiddle/MLHDh/

发布评论

评论列表(0)

  1. 暂无评论