【问题标题】:How do i make the particular item selected in select box using jquery on document load如何在文档加载时使用 jquery 在选择框中选择特定项目
【发布时间】:2010-09-29 15:50:32
【问题描述】:

我有选择框

<select id ="myselect">
<option value="AA">AA</option>
<option value="AB">AB</option>
<option value="AC">AC</option>
<option value="AD">AD</option>
</select>

在加载文档时,我想将选择框中的项目“AC”作为加载文档时的默认选择选项

$('#myselect').children('option').text('AC').attr('selected', 'selected');

因此,通过编写此语句,它使我的选择框为我的选择框完全填充了值“AC”。我该如何纠正 我尝试使用 if 语句比较“AC”的值。而且我没有将选项的“值”作为数字

【问题讨论】:

    标签: jquery jquery-selectors


    【解决方案1】:

    这应该是可行的:

    $('option[value=AC]').attr('selected','selected');
    

    演示地址:jsbin

    【讨论】:

    • @david: 我们需要在这个前面加上选择框id吗
    • 不,除非你真的想要。它没有添加任何东西,除了一点特异性。但是option[value=AC] 已经非常具体了。除非您有多个optionsvalue="AC",否则您不需要进一步指定。
    • 这仅在您想按值而不是文本进行比较时才有效。在他的示例中,它们是相同的,但他的示例代码试图检查 .text() 匹配,并且在大多数情况下这将与值不同。
    • @Sorpigal,真的。但我想我会回答被问到的问题。而且,通常,在 xhtml 表单元素中重要的是 value,而不是用于表示该选项值的文本。
    • 我的回答中是否有理由不使用 .val() ?只是好奇,因为那是我通常做的事情。
    【解决方案2】:

    您可以使用.val() 来设置选择的值。这将选择具有指定值的选项。

    $("#myselect").val('AC');
    

    此处示例:http://jsfiddle.net/mtd6z/

    【讨论】:

      【解决方案3】:

      你可能想要

       $('#myselect').children('option').filter(function(){ return $(this).text() == 'AC' }).attr('selected', 'selected');
      

      【讨论】:

      • 你可能是对的。在阅读了帖子中“而且我没有选项作为数字的“价值””的部分后,我开始怀疑海报的意思是他们需要比较文本值。
      【解决方案4】:

      我建议不要为此使用 Javascript(除非有一些非常重要的原因)-

      这样就可以了

      <select id ="myselect">
      <option value="AA">AA</option>
      <option value="AB">AB</option>
      <option value="AC" selected="selected">AC</option>
      <option value="AD">AD</option>
      </select>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-09-26
        • 2020-04-03
        • 1970-01-01
        • 2011-03-07
        • 2020-07-30
        • 1970-01-01
        • 2014-02-23
        • 1970-01-01
        相关资源
        最近更新 更多