JQuery onclick select this with another class -


i have code this:

$(".um").click(function () {     $(".subconteudo.dois").slideup();     $(".subconteudo.tres").slideup();     $(".subconteudo.quatro").slideup();     $(".subconteudo.cinco").slideup();     $(".subconteudo.um").slidedown(3000); }); 

5 more times each of classes(um,dois,...). , i'm trying make smaller code 'this' this:

$(".um, .dois, .tres, .quatro, .cinco").click(function () {     $(".subconteudo.um").slideup();     $(".subconteudo.dois").slideup();     $(".subconteudo.tres").slideup();     $(".subconteudo.quatro").slideup();     $(".subconteudo.cinco").slideup();     $(this + ".subconteudo").slidedown(); }); 

is possible? how? thank way html code this:

<div class="menu">     <div class="submenu um"></div>     <div class="submenu dois"></div>     <div class="submenu tres"></div>     <div class="submenu quatro"></div>     <div class="submenu cinco"></div> </div> <div class="conteudo">     <div class="subconteudo um"></div>     <div class="subconteudo dois"></div>     <div class="subconteudo tres"></div>     <div class="subconteudo quatro"></div>     <div class="subconteudo cinco"></div> </div> 

try solution using filter() , simple regex (/\b(um|dois|tres|quatro|cinco)\b/g):

$(".um, .dois, .tres, .quatro, .cinco").click(function () {     var firedclass = "."+this.classname.match(/\b(um|dois|tres|quatro|cinco)\b/g)[0];     $(".subconteudo").filter(".um, .dois, .tres, .quatro, .cinco").not(firedclass).slideup();     $(".subconteudo").filter(firedclass).slidedown(); }); 

it gets menu clicked class through regex. necessary because menu have more 1 class of list .um, .dois, .tres, .quatro, .cinco - (if does, picks first found in order: .um -> .dois -> .tres -> .quatro -> .cinco, intentional).

also, keep clicked subconteudo sliding up. (will slide others.)

demo link here.


Comments