2016-10-02 13 views
0

私はこのような典型的なブートストラップドロップダウンがあります。特定のIDを持つブートストラップドロップダウンの値を変更するにはどうすればよいですか?

<div class="btn-group"> 
    <button type="button" class="btn btn-lg btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Default option<span class="caret"></span></button> 
    <ul id="my-select" class="dropdown-menu"> 
      <li data-value="10" role="presentation"><a href="#">Option 1</a></li> 
      <li data-value="20" role="presentation"><a href="#">Option 2</a></li> 
    </ul> 
</div> 

これは、特定のIDなしすべてのブートストラップドロップダウンのために完璧に動作します。idでこれを達成するために

$(".dropdown-menu li a").click(function() { 
    var selText = $(this).text(); 
    $(this).parents('.btn-group').find('.dropdown-toggle').html(selText + ' <span class="caret"></span>'); 
}); 

私の失敗した試みは、次のとおりです。

var mySelect = $('#my-select'); 

mySelect.find(".li a").click(function() { 
    ... 
} 

そして

$("#my-select .li a").click(function() { 
    ... 
} 
+1

を識別するIDは、Li =>「のli A」 –

答えて

0

これは動作するはずです:

$("#my-select li a").click(function() { 

} 

.ドットは、クラス

のために使用されている

例:IDS

<button id="myButton" ...> 

$('#myButton')... 
+0

の前にドットを削除されMySelectとと李か何かを指定する必要はありません。しかし、私はしないでくださいクラスの点が必要ですか? – Apsed1976

+1

'li'はあなたのクラスではありません、liは' HTML Element'です –

0

試し用

<button class="myClass" ...> 

$('.myClass')... 

#シャープな使用この:

$("#myselect").click(function(){ 
... 
}); 

あなたは一意の要素

+0

これはイベントがバブルアップするように動作します。しかしどのリンクがクリックされたかはどうやって分かりますか? "this"キーワードはmyselectを表すため使用できません。 – derloopkat

+0

my-selectを表すのでこれを使うことはできません。しかし、event.target関数を使用すると、あなたがクリックしたのと正確に一致するLiを得ることができます。 '$("#my-select ")をクリックします(function(event){ alert(event.target.innerHTML); }); innerHTMLには、クリックしたliの正確な内容が表示されます。または、ここでliの他のプロパティを取得することがあります。idやノード名やクラスなど –

関連する問題