2015-05-28 72 views
0

我需要以編程方式設置現有選擇框的選項時,我只知道選項的文本而不是值。以編程方式設置選擇的文本-jquery

這裏是我的代碼:

$("#" + eventQuestions[x].code).find('option[text="' + eventAnswers[x].vAnswerString + '"]').attr("selected"); 

不要過於注重選擇合適的HTML元素或右文本爲vAnswerString裏面 - 我可以證實這些都是正確的。

基本上沒有選擇該選項。我的代碼有什麼問題?

+2

是'text'選項的實際屬性值,即''因爲如果是第二種情況,您的選擇器將不起作用 – chiliNUT

+2

attr函數在不提供第二個參數時返回屬性的當前值。 要添加選定的屬性做$(**)。attr(「selected」,true) – paquino

+2

在這裏檢查 http://stackoverflow.com/questions/18317082/filter-elements-out-of-a-jquery-基於對象的文本內容 –

回答

2

結賬this回答。

您可以使用過濾器來檢查內部文本,然後你把選定的屬性是這樣的:

$(function() { 
    $("#select").find("option").filter(function() { 
     return this.innerHTML == "InnerText"; 
    }).attr("selected", true); 
}) 
1

Here is a working example的jQuery 1.6+:

.attr("selected", true); 

例子我測試了它。

選擇使用過濾器功能的選項:

var text = "theTextToFind"; 
var matchingOption = $("select#myselect option").filter(function() { 
     return $(this).text() == text; 
    }); 

使用屬性功能時設定值:

matchingOption.prop('selected', true); 

還檢查了這個Answer

相關問題