Javascript 向下拉列表中添加选项时,字符串值包含空格,导致语法错误
我目前有一系列链接,可以打开包含下拉列表和输入文本框的菜单,向下拉列表添加新选项: 如果我保存一个不包含空格的值(“hello”),一切正常,但是如果一个值包含空格(“hello 2”),我会得到一个异常,它会显示“未捕获错误:语法错误,无法识别的表达式:[value=hello 2]” 以下是我迄今为止尝试过但未成功的两种方法:Javascript 向下拉列表中添加选项时,字符串值包含空格,导致语法错误,javascript,jquery,Javascript,Jquery,我目前有一系列链接,可以打开包含下拉列表和输入文本框的菜单,向下拉列表添加新选项: 如果我保存一个不包含空格的值(“hello”),一切正常,但是如果一个值包含空格(“hello 2”),我会得到一个异常,它会显示“未捕获错误:语法错误,无法识别的表达式:[value=hello 2]” 以下是我迄今为止尝试过但未成功的两种方法: $('.addSetSelect').append('<option value="' + setName + '">' + setName + '&l
$('.addSetSelect').append('<option value="' + setName + '">' + setName + '</option>');
我想知道向可以包含空格值属性的selectbox添加选项元素的最佳方法是什么?您可能只是遇到了字符串concat问题。这是更简单的:
$('.addSelect').append($('<option></option>').val(setName).text(setName));
$('.addSelect').append($('.val(setName).text(setName));
您可能只是遇到了字符串concat问题。这是更简单的:
$('.addSelect').append($('<option></option>').val(setName).text(setName));
$('.addSelect').append($('.val(setName).text(setName));
这两种方法都应该添加
元素<代码>[value=hello 2]可能引用代码中某个动态生成的jQuery选择器。只需添加引号,它就变成了[value='hello 2']
。我能够复制我的应用程序中存在的问题。当有多个下拉框时(如在我的程序中),用空格输入值似乎会引起问题。这是jQuery错误吗?这两种方法都应该添加
元素<代码>[value=hello 2]可能引用代码中某个动态生成的jQuery选择器。只需添加引号,它就变成了[value='hello 2']
。我能够复制我的应用程序中存在的问题。当有多个下拉框时(如在我的程序中),用空格输入值似乎会引起问题。这是jQuery错误吗<代码>$(“”).text(setName).appendTo(“.addSelect”)代码>较短。这可能较短,但它没有设置值属性:)
可以,我使用
以提高可读性(我知道,我很奇怪)。如果它与
中的文本相同,则不需要值属性。)(不过,如果他不使用值选择器属性,它会引用我的一般评论)这是真的,很好的快捷方式。我想我通常使用id作为值。如果有人怀疑的话,我做了一把小提琴来向自己证明:我只是试了一下$(“”).text(setName).appendTo(“.addSetSelect”)
和$('.addSelect').append($('.text(setName))
没有.val()
,并且似乎仍然会在包含空格的设置值上出现异常。我确实在JSFIDLE中尝试过,但是一切都很好,所以我将把它标记为合适的答案。关联的JSFIDLE派生自@Milimetric:$(“”).text(setName).appendTo(“.addSelect”)代码>较短。这可能较短,但它没有设置值属性:)
可以,我使用
以提高可读性(我知道,我很奇怪)。如果它与
中的文本相同,则不需要值属性。)(不过,如果他不使用值选择器属性,它会引用我的一般评论)这是真的,很好的快捷方式。我想我通常使用id作为值。如果有人怀疑的话,我做了一把小提琴来向自己证明:我只是试了一下$(“”).text(setName).appendTo(“.addSetSelect”)
和$('.addSelect').append($('.text(setName))
没有.val()
,并且似乎仍然会在包含空格的设置值上出现异常。我确实在JSFIDLE中尝试过,但是一切都很好,所以我将把它标记为合适的答案。关联的JSFIDLE从@Milimetric分叉: