【问题标题】:jquery select option not working (by name)jquery 选择选项不起作用(按名称)
【发布时间】:2012-04-28 06:13:48
【问题描述】:

我有以下定义我的选择器的 HTML:

<select name="zoom_cat[]" style="margin-left:15px;">
  <option value="-1" selected="selected">All</option>
  <option value="0">News</option>
  <option value="1">Publications</option>
  <option value="2">Services</option>
  <option value="3">Industries</option>
</select>

我正在尝试将所选选项设置为全部(值 -1)。由于某种原因,此 jquery 代码无效(仍选择相同的选项):

$('input[name="zoom_cat[]"] option[value="-1"]').attr('selected', 'selected');

【问题讨论】:

标签: jquery html


【解决方案1】:

您需要在选择器中转义特殊字符。

见: http://api.jquery.com/category/selectors/

所以试试这个吧:

$('input[name="zoom_cat\\\\[\\\\]"] option[value="-1"]').attr('selected', 'selected');

【讨论】:

  • 您必须在 jquery 选择器中转义方括号,它才能在 IE7 中正常工作。
【解决方案2】:

您可以这样做:(不是某人建议的 attr,而是 prop)

$('select[name="zoom_cat[]"] option[value="-1"]').prop('selected', 'selected');

【讨论】:

    【解决方案3】:

    正如上面的马特所说,你应该在你的选择器中使用select,而不是input,它们是不同的元素。同样设置 selected 属性在 $('select[name="zoom_cat[]"]').val('-1');

    【讨论】:

      【解决方案4】:

      使用select 而不是input

      $('select[name="zoom_cat[]"] option[value="-1"]').attr('selected', 'selected');
      

      工作样本:http://jsfiddle.net/Est9D/4/

      你可以用更简单的方式来做

        $('select[name="zoom_cat[]"]').val("-1") 
      

      示例:http://jsfiddle.net/Est9D/7/

      【讨论】:

        【解决方案5】:
        $('select[name="zoom_cat[]"] option[value="-1"]').attr('selected', 'selected');
        

        而不是input

        【讨论】:

        • selected 是属性 (prop()),而不是属性。 JS Fiddle.
        • @DavidThomas,prop 和 attr 都有效,如果你使用得当的话。在这里使用 attr 并没有错。更改选定的属性也会自动更改属性,反之亦然。 .attr('selected'): selected.prop('selected'): true
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-27
        • 2015-12-11
        • 2015-07-14
        • 2013-02-18
        • 2013-09-12
        • 1970-01-01
        相关资源
        最近更新 更多