下拉菜单使用选项文本获取选项值使用包含方法jquery返回错误值
我的下拉列表如下:下拉菜单使用选项文本获取选项值使用包含方法jquery返回错误值,jquery,option,dropdown,Jquery,Option,Dropdown,我的下拉列表如下: <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 id="lang" >
<option value="1">php</option>
<option value="2">java j2ee</option>
<option value="3">asp</option>
<option value="4">java</option>
</select>
var a = $('#lang option:contains("java")').val();
但我得到的选项值是2而不是4(这是正确的,也是预期的)
我出错了,因为我正在尝试方法包含。请指导我如何获得准确的值
您可以使用.html()
检查内容:
$('#lang option')。每个(函数(){
if($(this.html()=='java'){
警报($(this.val());
}
});代码>
php
java j2ee
asp
JAVA
您可以使用.html()
检查内容:
$('#lang option')。每个(函数(){
if($(this.html()=='java'){
警报($(this.val());
}
});代码>
php
java j2ee
asp
JAVA
使用.filter()
的示例
alert($('#lang option').filter(函数(){return$(this.text()=='java'}).val())代码>
php
java j2ee
asp
JAVA
使用.filter()
的示例
alert($('#lang option').filter(函数(){return$(this.text()=='java'}).val())代码>
php
java j2ee
asp
JAVA
如果要选择具有精确文本的元素,请使用正则表达式
var regex = new RegExp("^java$");
var a = $('#lang option').filter(function () {
return regex.test($(this).text());
}).val();
alert(a);
如果要选择具有精确文本的元素,请使用正则表达式
var regex = new RegExp("^java$");
var a = $('#lang option').filter(function () {
return regex.test($(this).text());
}).val();
alert(a);
JQuery:contains()
与相同。indexOf()
这样做如果使用,您将得到2,4。each()
JQuery:contains()
与相同。indexOf()
这样做如果使用,您将得到2,4。each()
或者您可以使用text()
进行检查。或者您可以使用text()
进行检查。