2016-03-09 160 views
3

我有一個引導下拉菜單,我想保留所選內容的文本。我嘗試了大多數嘗試在這裏的方式,Get Value From html drop down menu in jquery,但從來沒有真正的答案給出,所以我仍然卡住了。從引導下拉菜單中獲取選定的文本

<div id="tableDiv" class="dropdown"> 
    <button id="tableButton" class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown"> 
     Table 
     <span class="caret"></span> 
    </button> 
    <ul id="tableMenu" class="dropdown-menu"> 
     <li><a href="#">Att1</a></li> 
     <li><a href="#">Att2</a></li> 
     <li><a href="#">Att3</a></li> 
    </ul> 
</div> 

我有一個js函數(如下所示)

$("#tableMenu").click(function(){ 
    var selText = $("#tableMenu").text(); 
    document.getElementById("tableButton").innerHTML=selText; 
}); 

,但在上面的鏈接,$( 「#tableMenu」)作爲解釋文本()。以字符串形式返回下拉菜單中的所有內容,而不僅僅是一個想要的內容。如何從所選的文本中獲取文本。

回答

2

您需要的click()處理器連接到a元素被觸發的ul內。然後,您可以檢索該元素的text()並將其設置爲相關按鈕。試試這個:

$("#tableMenu a").click(function(e){ 
    e.preventDefault(); // cancel the link behaviour 
    var selText = $(this).text(); 
    $("#tableButton").text(selText); 
}); 

Working example

+0

這是完美的,謝謝! –

+0

沒問題,很高興幫助! –

0

綁定點擊事件li和使用this得到選定的文本,分配給選項卡按鈕上的文字

$("#tableMenu li").click(function() { 
    var selText = $(this).text(); 
    document.getElementById("tableButton").innerHTML = selText; // $("#tableButton").text(selText); //Using Jquery 
}); 
0

您是否嘗試過使用一個實際的HTML下拉框,而不是一個無序列表?

<select name="tableMenu" id="tableMenu" class="dropdown-menu"> 
    <option value="Att1">Att1</option> 
    <option value="Att2">Att2</option> 
    <option value="Att3">Att3</option> 
    </select> 

然後,您應該能夠使用:

var selText= document.getElementById("tableMenu").value; 
+0

OP使用bootstrap進行造型。 –