我有一个选择控件,在一个 javascript 变量中我有一个文本字符串。
使用 jQuery,我想将选择控件的选定元素设置为具有我拥有的文本描述的项目(而不是我没有的值)。
我知道按值设置它非常简单。例如
$("#my-select").val(myVal);
但我有点难以通过文字描述来做这件事。我想一定有办法从文本描述中获取value,但我的大脑在周五下午太忙了,无法计算出来。
我有一个选择控件,在一个 javascript 变量中我有一个文本字符串。
使用 jQuery,我想将选择控件的选定元素设置为具有我拥有的文本描述的项目(而不是我没有的值)。
我知道按值设置它非常简单。例如
$("#my-select").val(myVal);
但我有点难以通过文字描述来做这件事。我想一定有办法从文本描述中获取value,但我的大脑在周五下午太忙了,无法计算出来。
var text1 = 'Two';
$("select option").filter(function() {
//may want to use $.trim in here
return $(this).text() == text1;
}).prop('selected', true);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select>
<option value="0">One</option>
<option value="1">Two</option>
</select>
var text1 = 'Two';
$("select option").filter(function() {
//may want to use $.trim in here
return $(this).text() == text1;
}).attr('selected', true);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.4.0/jquery.min.js"></script>
<select>
<option value="0">One</option>
<option value="1">Two</option>
</select>
请注意,虽然此方法适用于高于 1.6 但低于 1.9 的版本,但自 1.6 以来已被弃用。它不适用于 jQuery 1.9+。
val()
应该处理这两种情况。
$('select').val('1'); // selects "Two"
$('select').val('Two'); // also selects "Two"
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.2.3/jquery.min.js"></script>
<select>
<option value="0">One</option>
<option value="1">Two</option>
</select>
我还没有测试过这个,但这可能对你有用。
$("select#my-select option")
.each(function() { this.selected = (this.text == myVal); });
试试这个...选择带有文本 myText 的选项
$("#my-Select option[text=" + myText +"]").prop("selected", true);
我这样做(jQuery 1.9.1)
$("#my-select").val("Dutch").change();
注意:不要忘记更改(),因此我不得不搜索很长时间:)
$("#myselect option:contains('YourTextHere')").val();
将返回包含您的文本描述的第一个选项的值。对此进行了测试并有效。