使用包含方法 jquery returns 错误值的下拉列表使用选项文本获取选项值
dropdown get option value using option text using contains method jquery returns wrong value
我有一个下拉菜单如下:
<select id="lang" >
<option value="1">php</option>
<option value="2">java j2ee</option>
<option value="3">asp</option>
<option value="4">java</option>
</select>
我正在做的是尝试使用选项文本获取选项值,如下所示;
假设java是选项文本,那么我试过如下:
var a = $('#lang option:contains("java")').val();
但我得到的选项值是 2 而不是 4(这是正确的和预期的)
我错了,因为我正在尝试方法 contains
。请指导我如何获得确切的价值?
您可以使用.html()
查看内容:
$('#lang option').each(function() {
if ($(this).html() == 'java') {
alert($(this).val());
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="lang">
<option value="1">php</option>
<option value="2">java j2ee</option>
<option value="3">asp</option>
<option value="4">java</option>
</select>
示例使用 .filter()
.
alert($('#lang option').filter(function(){return $(this).text() == 'java' }).val());
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="lang">
<option value="1">php</option>
<option value="2">java j2ee</option>
<option value="3">asp</option>
<option value="4">java</option>
</select>
如果您想 select 具有准确文本的元素,请使用 Regex
var regex = new RegExp("^java$");
var a = $('#lang option').filter(function () {
return regex.test($(this).text());
}).val();
alert(a);
我有一个下拉菜单如下:
<select id="lang" >
<option value="1">php</option>
<option value="2">java j2ee</option>
<option value="3">asp</option>
<option value="4">java</option>
</select>
我正在做的是尝试使用选项文本获取选项值,如下所示;
假设java是选项文本,那么我试过如下:
var a = $('#lang option:contains("java")').val();
但我得到的选项值是 2 而不是 4(这是正确的和预期的)
我错了,因为我正在尝试方法 contains
。请指导我如何获得确切的价值?
您可以使用.html()
查看内容:
$('#lang option').each(function() {
if ($(this).html() == 'java') {
alert($(this).val());
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="lang">
<option value="1">php</option>
<option value="2">java j2ee</option>
<option value="3">asp</option>
<option value="4">java</option>
</select>
示例使用 .filter()
.
alert($('#lang option').filter(function(){return $(this).text() == 'java' }).val());
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="lang">
<option value="1">php</option>
<option value="2">java j2ee</option>
<option value="3">asp</option>
<option value="4">java</option>
</select>
如果您想 select 具有准确文本的元素,请使用 Regex
var regex = new RegExp("^java$");
var a = $('#lang option').filter(function () {
return regex.test($(this).text());
}).val();
alert(a);