【问题标题】:JQuery selector cointains parenthesesJQuery 选择器包含括号
【发布时间】:2015-12-21 18:48:48
【问题描述】:
我有 div 的 id 是从数据库中提取的。这些 id 有时包含括号,这会导致 JQuery 选择器不起作用。我能做什么?
这是我所说的一个例子:
https://jsfiddle.net/2uL7s3ts/1/
var element = 'hello (world)';
$('#' + element).hide();
【问题讨论】:
标签:
javascript
jquery
html
【解决方案1】:
您可以使用 ID 的属性选择器
$("[id='" + element + "']").hide();
或使用regex 修改您的字符串选择器以删除括号和空格
element = element.replace(/(?=[() ])/g, '\\');
$('#' + element).hide();
【解决方案2】:
我建议切换回原生 getElementById 方法,而不是像其他答案所建议的那样使用属性选择器。
$(document.getElementById(element)).hide();
我在属性选择器上建议这样做的原因是出于性能原因。属性可以存在于任何元素上,因此当您执行它时,javascript 必须扫描上下文中的每个元素以查看它是否具有具有匹配值的属性。
使用 getElementById,它接受文字 id 而不是选择器,不会发生 DOM 扫描。