2015-01-08 77 views
-1

我想分配一個類來跨越與父母的id相匹配的類,但是它不起作用。我失敗的jQuery看起來是這樣的:向Jquery中的子元素添加一個類

$("span.genre").click(function(e){ 
    var genre_id = $(this).attr('id'); 
    $('span.hidden '+genre_id).addClass('sub_genre'); 
}); 

和原始的HTML:

<div id="genres"> 
    <span class='genre' id='1'>Rock</span> 
     <span class='hidden 1'>Alternative rock</span> 
     <span class='hidden 1'>Art rock</span> 
     <span class='hidden 1'>Christian rock</span> 
     <span class='hidden 1'>Experimental rock</span> 
    <span class='genre' id='5'>R&B/soul</span> 
     <span class='hidden 5'>Contemporary R&B</span> 
     <span class='hidden 5'>Disco</span> 
     <span class='hidden 5'>Soul</span> 
     <span class='hidden 5'>Pop R&B</span> 
+0

'跨度:他們不是父母 –

+0

你說得對。我的錯。我是新手。 – David

回答

0

你錯了選擇目標跨度elements.use:

$("span.genre").click(function(e){ 
    var genre_id = $(this).attr('id'); 
    $('span.hidden.'+genre_id).addClass('sub_genre'); 
}); 

Working Demo

0

你剛剛在這裏錯過了一個尾隨時期span.hidden.

$("span.genre").click(function(e){ 
    var genre_id = $(this).attr('id'); 
    $('span.hidden.'+genre_id).addClass('sub_genre'); 
}); 

jsFiddle example

你有什麼,在尋找span元素與一個隱藏類,和1個或5個派生元素(這將不存在)。

0

只是一個小錯誤。特殊照顧了控制類兩種,所以你需要IT連鎖的選擇:

$('span.hidden.'+genre_id).addClass('sub_genre'); 
0

你可以做,像這樣太:符合他們的父母的id`是

$("span.genre").click(function(e){ 
    $(this).nextUntil('.genre').addClass('sub_genre'); 
}); 
相關問題