简体   繁体   English

使用jquery在基于用户定义的变量的select中选择一个选项

[英]using jquery to select an option in a select based on a user-defined variable

Given a user-defined variable jstatus , I want that that particular variable should be selected in a given list of options. 给定用户定义的变量jstatus ,我希望应在给定的选项列表中选择该特定变量。

My list is like this: 我的清单是这样的:

<select name='job_status' id='job_status'>
    <option>Pre-press</option>
    <option>Printers</option>
    <option>Cutting</option>
    <option>Final touches</option>
    <option>Delivery</option>
    <option>Ready</option>
</select>

And somewhere in my javascript code after setting the value of jstatus , this is my jquery: 设置jstatus的值后,在我的javascript代码中的jstatus ,这是我的jquery:

$("#job_status option[value='"+jstatus+"']").attr('selected','selected');

But it's not working. 但这不起作用。 What's the right way to do it? 什么是正确的方法?

最简单的方法是直接设置值:

jQuery("#job_status").val(jstatus);

您需要先向选择器添加值。

<option value="Pre-press">Pre-press</option>

The problem is that your select list has no "value"-property on its options 问题是您的选择列表的选项没有“值”-属性

<select name='job_status' id='job_status'>
     <option value="val1">Pre-press</option>
     <option value="val2">Printers</option>
     <option value="val3">Cutting</option>
     <option value="val4">Final touches</option>
     <option value="val5">Delivery</option>
     <option value="val6">Ready</option>
</select>

<script>
    $( 'select option[value="val3"]' ).attr( 'selected', 'selected' );
</script>

You can also use jQuery's val() method 您还可以使用jQuery的val()方法

$( 'select' ).val( 'val3' )

this would have the same effect as the above 这将具有与上述相同的效果

If you still prefer using a direct selector, there's :contains for you to select element by its contents. 如果仍然喜欢使用直接选择器,则可以使用:contains来按其内容选择元素。 For your case it goes pretty much like this: 对于您的情况,它几乎是这样的:

$("#job_status option:contains("+jstatus+")").attr('selected','selected');

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM