我有一个选择控件,并且在javascript变量中有一个文本字符串。
我想使用jQuery将select控件的selected元素设置为具有我的文本描述的项目(而不是我没有的值)。
我知道按值设置它是微不足道的。例如
$("#my-select").val(myVal);
但是我对通过文本描述进行操作感到有些困惑。我想一定有办法从文本描述中获取价值,但是星期五下午我的大脑太忙了,无法计算出来。
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() 应该处理两种情况。
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>