我的下拉列表类似于以下内容:
<select type="select" id="ddl">
<option value="0">Select...</option>
<option value="1">Blue</option>
<option value="2">Red</option>
<option value="3">Green</option>
<option value="4">Yellow</option>
</select>
当我有文本时,我需要获取选项的值,与是否选择任何内容无关。
我试过了$('#ddl[text=Blue]).value()
,但那不行。我不知道还有什么可以尝试。
感谢。
SELECT EXAMPLE FIXED (我复制/粘贴错误的行 - sheesh !;))
答案 0 :(得分:3)
您的代码存在一些问题:
$('#ddlDirector[text=Blue]).value()
id
仅为ddl
,而非ddlDirector
。<option>
元素时)。attribute-equals
选择器,但text
元素上没有<option>
属性。您可以使用:contains
选择器:
$('#ddl option:contains("Blue")').val();
如果您要使用它,可能值得创建一个函数来执行此操作:
function getValueFromText(selectId, optionText) {
return $('#' + selectId + ' option:contains("' + optionText + '")').val();
}
然后用:
调用它var blueValue = getValueFromText('ddl', 'Blue');
答案 1 :(得分:3)
我可以想到两个选择:
如果通配符搜索正常,则第一个将起作用(例如,匹配&#34;蓝色&#34;和#34;蓝调&#34;):
$('#ddl option:contains("Blue")').val();
这只会找到完全匹配的内容:
$('#ddl option').filter(function() { return $(this).text() == 'Blue'; }).val();
答案 2 :(得分:2)
var color = "Red";
alert($('#ddl option:contains("' + color + '")').attr("value"));