我有从数据库中提取的id的div。这些ID有时包含括号,这会导致JQuery选择器无法工作。我该怎么办?
以下是我所说的一个例子:
https://jsfiddle.net/2uL7s3ts/1/
var element = 'hello (world)';
$('#' + element).hide();
答案 0 :(得分:1)
您可以使用ID
的属性选择器$("[id='" + element + "']").hide();
或使用regex修改字符串选择器以删除括号和空格
element = element.replace(/(?=[() ])/g, '\\');
$('#' + element).hide();
答案 1 :(得分:1)
我不建议像其他答案那样使用属性选择器,而是建议切换回本机getElementById
方法。
$(document.getElementById(element)).hide();
我之所以建议通过属性选择器,是出于性能方面的考虑。属性可以存在于任何元素上,因此当您执行它时,javascript必须扫描上下文中的每个元素以查看它是否具有具有匹配值的属性。
使用getElementById
(其接受文字ID而不是选择符),将不会进行DOM扫描。