一尘不染

jQuery-通过文本描述设置选择控件的选择值

javascript

我有一个选择控件,并且在javascript变量中有一个文本字符串。

我想使用jQuery将select控件的selected元素设置为具有我的文本描述的项目(而不是我没有的值)。

我知道按值设置它是微不足道的。例如

$("#my-select").val(myVal);

但是我对通过文本描述进行操作感到有些困惑。我想一定有办法从文本描述中获取价值,但是星期五下午我的大脑太忙了,无法计算出来。


阅读 298

收藏
2020-04-25

共1个答案

一尘不染

按说明选择jQuery v1.6 +

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>

低于1.6且大于等于1.4的jQuery版本

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>
2020-04-25