目前我有以下<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>
框的名称中转义括号。
答案 0 :(得分:2)
解决方案是稍微更改您的选择框:
<select name="selectemail[]" multiple="true" id="myselect">
$('#myselect')
将选择列表框,但您可以使用此jQuery选择器来获取所选选项
$('#myselect :selected')
查看 working fiddle here 。
如果你真的想按名称选择,你还需要转义斜线(因为它们在一个字符串中),所以你的选择器将是:
$("[name=selectemail\\[\\]] :selected")
有两个原因我不会这样做:
按ID选择比按属性选择要快得多(我甚至认为按css选择比按名称选择快得多)。
这对于可读性而言非常糟糕
答案 1 :(得分:-1)
您应该能够使用反斜杠来转义括号,如下所示:
<select name="selectemail\[\]" multiple="true">