2011-08-09 53 views
1
<select id="list" multiple=multiple> 
    <option value="1" id="one" selected="selected">one </option> 
    <option value="2" id="two" selected="selected">two </option> 
    <option value="3" id="three">three </option> 
</select> 

<ul id="uli"> 
    <li aaa="one">one</li> 
    <li aaa="two">two</li> 
    <li aaa="three">three</li> 
</ul> 

隨着CSS:添加類相當於其它ID

.back { 
color: red; 
} 

和JavaScript:

$("#list").find("option:selected").each(function() { 
    // logic here 
}); 

進入each()回調,我想補充類相當於ULI。我想使用addClass(.back)作爲列表,其中attr aaa == id列表。

直播:http://jsfiddle.net/yjL9n/3/

回答

1

$( '裏[AAA =' + this.id + ']')addClass(「回「);

$('table').find('td[aaa="'+this.id+'"]').addClass('back'); 

添加到your fiddle內部分將做到這一點。 更新基於來自OP的評論。

+0

謝謝,我該如何改變它:http://jsfiddle.net/yjL9n/8/表? –

+0

您只需更改選擇器中的元素。您可能想閱讀[CSS選擇器](http://www.w3.org/TR/css3-selectors/#selectors) – andyb

7

在這裏你去:

$("#uli").find('[aaa="'+this.id+'"]') 
    .addClass('back'); 

http://jsfiddle.net/yjL9n/4/

+0

+1比我快:-) – andyb

+0

如果你整理了選擇器,你可以有另一個+1! :D –

+0

它足夠乾淨嗎? ;) –

1

試試這個

$("#list").find("option:selected").each(function() { 
    $("#uli").find('[aaa="'+this.id+'"]').addClass('back'); 
}); 
+0

謝謝,我該如何改變它:http://jsfiddle.net/yjL9n/8 /表格? –

2

此作品(並且是整潔):

$("#list option:selected").each(function() { 
    $('#uli li[aaa="' + this.id + '"]').addClass('back'); 
}); 

http://jsfiddle.net/yjL9n/5/

不過我不會用AAA作爲一個屬性!

+1

至於將所有選擇器合併爲一個字符串,而不是使用查找 - 這兩種類型之間存在深刻的區別。當jQuery找到長字符串選擇器時,它總是運行它的css解析單元(sizzle),並且在使用find時 - 通常可以自行管理它。但說實話,我不確定它是否涵蓋這個例子。 –

+0

我不知道,謝謝:D –

+0

謝謝,我該如何改變它:http://jsfiddle.net/yjL9n/8/表? –