我有一个选择控件,在一个javascript变量,我有一个文本字符串。
使用jQuery,我想设置选择控件的选定元素为我有文本描述的项目(而不是值,这是我没有的)。
我知道用值来设置它很简单。如。
$("#my-select").val(myVal);
但我有点难住了,通过文本描述。我想一定有办法从文本描述中得到价值,但我的大脑在周五下午太忙了,无法解决这个问题。
我有一个选择控件,在一个javascript变量,我有一个文本字符串。
使用jQuery,我想设置选择控件的选定元素为我有文本描述的项目(而不是值,这是我没有的)。
我知道用值来设置它很简单。如。
$("#my-select").val(myVal);
但我有点难住了,通过文本描述。我想一定有办法从文本描述中得到价值,但我的大脑在周五下午太忙了,无法解决这个问题。
当前回答
我还没有测试过,但这可能对你有用。
$("select#my-select option")
.each(function() { this.selected = (this.text == myVal); });
其他回答
jQuery 1.9.1 (jQuery 1.9.1)
$("#my-select").val("Dutch").change();
注意:不要忘记更改(),我不得不搜索很长时间,因为那:)
为了避免所有jQuery版本的复杂性,我真诚地建议使用这些非常简单的javascript函数之一…
function setSelectByValue(eID,val)
{ //Loop through sequentially//
var ele=document.getElementById(eID);
for(var ii=0; ii<ele.length; ii++)
if(ele.options[ii].value==val) { //Found!
ele.options[ii].selected=true;
return true;
}
return false;
}
function setSelectByText(eID,text)
{ //Loop through sequentially//
var ele=document.getElementById(eID);
for(var ii=0; ii<ele.length; ii++)
if(ele.options[ii].text==text) { //Found!
ele.options[ii].selected=true;
return true;
}
return false;
}
$("#myselect option:contains('YourTextHere')").val();
将返回包含文本描述的第一个选项的值。测试了这一点,并工作。
根据描述选择jQuery v1.6+
var text1 = '两个'; $("select option").filter(function() { //可能需要使用$。这里修剪一下 返回$(this).text() == text1; })。道具(“选择”,真正的); < script src = " https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js " > < /脚本> <选择> <选项值= " 0 " > < /选项>一个 两个<选项值= " 1 " > < /选项> < /选择>
jQuery版本低于1.6且大于等于1.4
var text1 = '两个'; $("select option").filter(function() { //可能需要使用$。这里修剪一下 返回$(this).text() == text1; })。attr(‘选择’,真正的); < script src = " https://cdnjs.cloudflare.com/ajax/libs/jquery/1.4.0/jquery.min.js " > < /脚本> <选择> <选项值= " 0 " > < /选项>一个 两个<选项值= " 1 " > < /选项> < /选择>
注意,虽然这种方法可以在高于1.6但低于1.9的版本中工作,但从1.6开始就已经弃用了。它不能在jQuery 1.9+中工作。
以前的版本
Val()应该处理这两种情况。
$('选择').val (' 1 ');//选择“2” $('选择').val(两个);//同时选择"Two" < script src = " https://cdnjs.cloudflare.com/ajax/libs/jquery/1.2.3/jquery.min.js " > < /脚本> <选择> <选项值= " 0 " > < /选项>一个 两个<选项值= " 1 " > < /选项> < /选择>
$("#Test").find("option:contains('two')").each(function(){
if( $(this).text() == 'two' ) {
$(this).attr("selected","selected");
}
});
if语句与"two"进行精确匹配,"two 3 "将不会被匹配