简单的问题。我有一个js变量我想在jQuery选择器中连接。但它不起作用。也没有出现任何错误。怎么了?如何在jQuery选择器中正确地将变量连接到某些文本。
<select class="form-control" name="taille" id="{{Product.id~'/taille'}}">
<option>Taille</option>
<option>1</option>
<option>2</option>
</select>
和在jquery中使用此代码获取所选select
的id$('select[name="taille"]').focusin(function(){
var idElement = $(this).attr('id');
var arr = idElement.split('/');
并且它的工作非常好,但问题是我要为id选择选择附加选项我尝试了很多代码而没有人为例子工作:
$('#'+arr[0]+'/taille')
.find('option')
.remove()
.end()
.append('<option value="whatever">text</option>')
.val('whatever')
;
请帮助和谢谢。
答案 0 :(得分:4)
$('[id="' + arr[0] + '/taille"]')
<小时/> 或者您需要使用
/
转义元字符(\\
)。
$('#' + arr[0] + '\\/taille')
检查documentation of jQuery selectors:
要使用任何元字符(例如
!"#$%&'()*+,./:;<=>?@[\]^``{|}~
)作为名称的文字部分,必须使用两个反斜杠进行转义:\\
。例如,具有id="foo.bar"
的元素可以使用选择器$("#foo\\.bar")
。 W3C CSS规范包含complete set of rules regarding valid CSS selectors。同样有用的是Mathias Bynens在CSS character escape sequences for identifiers上的博客文章。
我认为您正在尝试使用自己的id
来获取相同的元素。如果yes
则不需要使用引用相同元素的this
。虽然无需再次删除和追加,但只需使用 html()
即可删除现有内容。
$('select[name="taille"]').focusin(function(){
$(this).html('<option value="whatever" selected>text</option>');
});