【问题标题】: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 扫描。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-02
      • 1970-01-01
      • 2012-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多