jQuery的选择如果option.value等于某事,标记一个选定的

我有一些关于jquery选择的问题。 在我的情况下,如果option.value等于某事,该如何匹配,标记为selected它。 在线代码在这里

重复代码。 它导致Uncaught TypeError: Object #<HTMLOptionElement> has no method 'val' ,如何按照我的希望工作? 谢谢。

<script type="text/javascript">
$(document).ready(function(){
    var num = 3;
    $("div#selection select.select option").each(function(){
        if((this).val()==num){
            $(this).attr("selected","selected");    
        }
    });
});
</script>
<div id="selection">
    <label>Label1:</label>
    <select class="select">
        <option value="1">V1</option>
        <option value="2">V2</option>
        <option value="3">V3</option>
    </select>
    <label>Label2:</label>
    <select class="select">
        <option value="4">U1</option>
        <option value="5">U2</option>
        <option value="6">U3</option>
    </select>
</div>

你犯了一个错字

而不是(this).val()你应该在if语句中使用$(this).val()this是指一个HTMLObject, $(this)会引用一个jQuery对象。 因为.val()方法是jQuery框架的一部分,所以不能在HTMLObjects上使用它。 但我相信你知道这一点,因为它看起来很像一个小小的错字。

这应该工作:

$(document).ready(function(){
    var num = 3;
    $("div#selection select.select option").each(function(){
        if($(this).val()==num){ // EDITED THIS LINE
            $(this).attr("selected","selected");    
        }
    });
});

编辑

你可以通过添加一个return false;来优化你的循环return false;break;对于香草循环),当你找到你的元素时,它不会在我们已经“完成”时保留循环元素。

但是,您应该看看Nicola Peluchetti的答案,以获得更高效更简洁的代码。


你有一个错字,并设置选项选择你应该使用prop()而不是attr()。 在任何情况下你都可以做到

var num = 3;
$("div#selection select.select option[value="+num+"]").prop("selected", true);

小提琴在这里http://jsfiddle.net/YRBrp/

编辑 - 当然是Tim S.指出的错误,你应该使用$(this).val()而不是(this).val()


你的问题从这里开始

$(“div#selection select.select option ”).each(function(){if( (this).val() == num){

将其更改为

$("div#selection select.select").each(function(){
if($(this).val()==num){

所有的问题都解决了。 如果您想在每次选择更改时触发脚本,则可能需要将.each更改为.change。

链接地址: http://www.djcxy.com/p/83069.html

上一篇: jquery selection if option.value equal something, mark a selected

下一篇: How to set the 'selected option' of a select dropdown list with jquery