2011-12-05 5 views
0

私はアイテムのリストを持っています。jQueryで現在選択されているリストアイテムを設定します

<li id='item1'>number_1<li> 
<li id='item2'>number_2<li> 
… 
<li id='itemn'>number_n<li> 

ユーザーがアイテムを選択します。リストの項目数は毎回異なります。選択したアイテムを設定したいと思います。 私のコードです。私は各項目のIDを得ることができます。私の問題は、選択したアイテムを設定できないことです。例えば。私はitem2を取得する場合。 idはmycode内の変数であるので、私は

<li id='item2' class="selected" >number_2<li> 

ようになった項目にしたいです。私はjqueryのスクリプトでそれを行う方法をたくさん試しました。以下のように:

$("#id").addClass('selected'); // doesn't work; 
$("li" id).addClass('selected'); // doesn't work; 
$("#" id).addClass('selected'); // doesn't work; 
$($this. id).addClass('selected'); // doesn't work; 

私は多分、これは単純すぎるprobemで、ウェブ上で検索、私は同様の質問と回答を見つけることができませんでした。誰でも私を助けてくれますか?ありがとうございました!

+0

http://jsfiddle.netはどうですか? –

答えて

2

あなたはこのようなあなたのIDに#を連結する必要があります。

$("#" + id).addClass('selected'); 

あなたのコードは、この(あなたが述べたように、変数にIDを保存する必要はありません)のようなものになります。

$("li").click(function() { 
    $(this).siblings().find(".selected").removeClass("selected"); 
    $(this).addClass("selected"); 
}); 
+0

'$( 'li .selected')'に余分なスペースがあると思います。また、私は '$(this).addClass(...)。siblings()。removeClass(...)'に変更するだけです。 –

+0

@MДΓΓLLLLLL、素晴らしい提案 - 更新されました。 –

+0

'$( 'li.selected')'はまだDOM全体を見ていて、本当に不要なようです。 –

1

は、私はあなたがそれはあなたがexecししようとしている場所によって異なり

$('#'+id).addClass('selected'); 
// or 
$(this).addClass('selected'); 

を探しているのだと思いますしかし、このコードをute。

+0

あなたは最高です! $( '#' + id).addClass( 'selected');これは動作します!!!ありがとうございます! – Gary

+0

あなたの問題が解決したら、あなたに最も役立つ[回答を受け入れる](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)をしてください。 –

1

あなたがこれを設定しようとしているときに、クリックハンドラ内であれば、最も簡単である:

$(this).addClass('selected'); 

あなたは変数idを持っていますが、クリックハンドラ内ではありません、あなたがしたい場合:

$('#'+id).addClass('selected'); 
1

$('li').click(function() { 
    $(this).addClass('selected'); 
}); 
+0

@Jamesはい私は正しい道を進んでいると感じています。 ;) –

0
$("#id").addClass('selected'); // doesn't work; 
これを試してみてください

このコードを使用する前にjqueryをインポートしてください。

関連する問題