JQuery选择器括在括号中

时间:2015-12-21 18:48:49

标签: javascript jquery html

我有从数据库中提取的id的div。这些ID有时包含括号,这会导致JQuery选择器无法工作。我该怎么办?

以下是我所说的一个例子:

https://jsfiddle.net/2uL7s3ts/1/

var element = 'hello (world)';
$('#' + element).hide();

2 个答案:

答案 0 :(得分:1)

您可以使用ID

的属性选择器
$("[id='" + element + "']").hide();

或使用regex修改字符串选择器以删除括号和空格

element = element.replace(/(?=[() ])/g, '\\');
$('#' + element).hide();

答案 1 :(得分:1)

我不建议像其他答案那样使用属性选择器,而是建议切换回本机getElementById方法。

$(document.getElementById(element)).hide();

我之所以建议通过属性选择器,是出于性能方面的考虑。属性可以存在于任何元素上,因此当您执行它时,javascript必须扫描上下文中的每个元素以查看它是否具有具有匹配值的属性。

使用getElementById(其接受文字ID而不是选择符),将不会进行DOM扫描。