【问题标题】:How can I set 'selected' value for an option which has square brackets in it id name? [duplicate]如何为 ID 名称中包含方括号的选项设置“选定”值? [复制]
【发布时间】:2013-04-28 04:02:16
【问题描述】:

我想读取 id 中包含 [] 的 select 标记的值。

<select id="jobtype[]" class="dropDown" size="4" multiple="multiple" name="jobtype[]">
<option value="28">Activity staff/ Resort Rep</option>
<option value="1">Admin/ Secretarial/ Clerical</option>
<option value="2">Advertising/ Marketing/ PR</option>
<option value="29">Art/ Design</option>
<option value="30">Au Pair/ Nanny</option>

我正在使用下面的函数来设置'selected':

$("#jobtype\\[\\] option").each(function()
            {
                //if ($(this).val() == 39)
                { 
                    $(this).attr('selected', 'selected');
                }

            });
}

【问题讨论】:

  • Id 属性不应有 []
  • 您的代码按原样工作(如果您修复括号周围的语法错误),但没有值为 39 的选项。jsfiddle.net/w7vRv
  • 看看这个为什么它不应该有方括号:stackoverflow.com/questions/70579/…
  • 是的,没有 value = 39 的选项。我只是举了一个例子,伙计...
  • 从 HTML5 开始,对 ID 的唯一要求是它必须至少包含一个字符,并且不能包含任何空格。它没有说不使用[]

标签: php javascript jquery jquery-selectors html-select


【解决方案1】:

是的,转义括号应该可以正常工作:

$("#jobtype\\[\\] option[value=39]").prop('selected', true);

FIDDLE

【讨论】:

  • 我可以得到
  • 在什么版本的jQuery中?你当然有这个价值的选择,看看我的小提琴?
  • 我正在使用 jQuery JavaScript Library v1.4.2
  • 我已将此代码放在一个函数中,并且在更改下拉菜单时,我正在调用此函数。
  • 那么您使用的代码非常过时,在您升级到更新版本之前,我拒绝帮助您。
【解决方案2】:

应该是这样工作的:http://jsfiddle.net/2e3tY/1/,所以还有其他问题:

试试:

  1. select 标签应该关闭
  2. jquery 函数应该包含在 $(function() { } );所以它在 doc ready 时被调用。

【讨论】:

  • 是的,我同意..选择标签将被关闭..我只是举个例子。它实际上已关闭。
【解决方案3】:

您的代码似乎工作得很好,这是小提琴。 http://jsfiddle.net/LxKrS/1/

$("#jobtype\\[\\] option").each(function() {
    if ($(this).val() == 29) { 
        $(this).attr('selected', 'selected');
    }    
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-19
    • 2012-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-02
    • 1970-01-01
    • 2021-12-01
    相关资源
    最近更新 更多