我正在使用带有jquery多选扩展名的jquery。
我的html语法:
<select multiple="multiple" id="test">
<option value=1>1</option>
<option value=2>2</option>
<option value=3>3</option>
</select>
然后我用:
获取多选的值 $(function() {
$('#test').change(function() {
console.log($(this).val());
}).multipleSelect({
width: '100%'
});
});
这100%有效。
我的问题是当ID中有空格时如何使其工作。我知道在ID或Name中有一个空格是不理想的,但它是当前的空间,我需要从带有空格的ID中获取多个选择选项。 例如:
<select multiple="multiple" id="test two">
<option value=1>1</option>
<option value=2>2</option>
<option value=3>3</option>
</select>
$(function() {
$('#test two').change(function() {
console.log($(this).val());
}).multipleSelect({
width: '100%'
});
});
这失败了,里面有空格。
我尝试过以下几个选项但没有成功。
任何建议总是受到赞赏。
$(function() {
$("#test two").change(function() {
console.log($(this).val());
}).multipleSelect({
width: '100%'
});
});
答案 0 :(得分:4)
喜欢这样
$("select[id='test two']").change(function() {
console.log($(this).val());
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select multiple="multiple" id="test two">
<option value=1>1</option>
<option value=2>2</option>
<option value=3>3</option>
</select>
&#13;
可以(在ID中使用空格),但最好不要在空格中使用id,将_
添加到选择器,例如'#text_two'
答案 1 :(得分:2)
空格不是HTML4和HTML5中ID属性中的有效字符。顺便说一句,您可以使用属性选择器:
$("[id='test two']").change( ... );
答案 2 :(得分:2)
您可以使用如下属性选择器:
$("[id='test two']").change(function{
// Logic here...
});
或者,您可以将ID更改为类...
答案 3 :(得分:2)
当您按id属性选择元素时,不要使用空格,因为空格字符对ID属性不起作用。为什么不遵循惯例?
ID令牌必须以字母([A-Za-z])开头,然后可以跟随 任意数量的字母,数字([0-9]),连字符(&#34; - &#34;),下划线 (&#34; _&#34;),冒号(&#34;:&#34;)和句号(&#34;。&#34;)。
如果您不关心任何类型的约定,请选择其他答案所表达的方式。
$("select[id='test two']").change(function() {
console.log($(this).val());
});
@courtesy 亚历山大
答案 4 :(得分:1)
jQuery文档在Selectors上有一个综合页面。您可以根据属性(id
是)找到可用于查询的所有选择器,但它也有这条建议:
要使用任何元字符(例如
!"#$%&'()*+,./:;<=>?@[\]^`{|}~
)作为名称的文字部分,必须使用两个反斜杠进行转义:\\
。例如,id="foo.bar"
元素可以使用选择器$("#foo\\.bar")
。
所以你有两个选择:
$('#test\\ two')
或
$('[id="test two"]')
所有这些都表示,HTML spec不允许元素id
属性中的空格。浏览器可能仍会按照您的预期呈现页面,但如果可以避免,您真的不应该这样做;只是因为它使事情变得比他们需要的要复杂得多,正如你已经发现的那样。
该值必须在元素的主子树中的所有ID中唯一,并且必须至少包含一个字符。该值不得包含任何空格字符。