在 jQuery 选择器中转义方括号
Escape square brackets in jQuery selector
目前我有以下<select>
框:
<select name="selectemail[]" multiple="true">
<option value="email">test@email.com</option>
<option value="name">Joe</option>
<option value="date">2015</option>
</select>
在 Javascript 文件中,我有以下内容:
$("#add").click(function(){
/* Note the square brackets below */
$("[name=selectemail[]] option:selected").each(function(){
$("#text").val($("#text").val() + $(this).text() + "\n");
});
});
我正在尝试通过选择需要转移的项目来将 <select>
框中的内容转移到 <textarea>
。
问题是我不知道如何转义 jQuery 选择器中 <select>
框名称中的括号。
解决办法是稍微改变一下你的select盒子:
<select name="selectemail[]" multiple="true" id="myselect">
$('#myselect')
将 select 列表框,但您可以使用此 jQuery select 或获取 selected 选项
$('#myselect :selected')
看到一个working fiddle here.
如果你真的想按名字 select 你还需要转义你的斜杠(因为它们在一个字符串中)所以你的 selector 会是:
$("[name=selectemail\[\]] :selected")
我不会这样做的原因有两个:
按 id 选择比按属性 select 快得多(我什至认为 select 按 class 比按名称快得多,感谢css).
可读性太差了
您应该可以使用反斜杠来转义括号,如下所示:
<select name="selectemail\[\]" multiple="true">
目前我有以下<select>
框:
<select name="selectemail[]" multiple="true">
<option value="email">test@email.com</option>
<option value="name">Joe</option>
<option value="date">2015</option>
</select>
在 Javascript 文件中,我有以下内容:
$("#add").click(function(){
/* Note the square brackets below */
$("[name=selectemail[]] option:selected").each(function(){
$("#text").val($("#text").val() + $(this).text() + "\n");
});
});
我正在尝试通过选择需要转移的项目来将 <select>
框中的内容转移到 <textarea>
。
问题是我不知道如何转义 jQuery 选择器中 <select>
框名称中的括号。
解决办法是稍微改变一下你的select盒子:
<select name="selectemail[]" multiple="true" id="myselect">
$('#myselect')
将 select 列表框,但您可以使用此 jQuery select 或获取 selected 选项
$('#myselect :selected')
看到一个working fiddle here.
如果你真的想按名字 select 你还需要转义你的斜杠(因为它们在一个字符串中)所以你的 selector 会是:
$("[name=selectemail\[\]] :selected")
我不会这样做的原因有两个:
按 id 选择比按属性 select 快得多(我什至认为 select 按 class 比按名称快得多,感谢css).
可读性太差了
您应该可以使用反斜杠来转义括号,如下所示:
<select name="selectemail\[\]" multiple="true">