1

直接来自 jquery docs:

如果您希望使用任何元字符(例如!"#$%&'()*+,./:;<=>?@[\]^&a{|}~)名称的文字部分,您必须使用两个反斜杠转义该字符:\。例如,如果您有一个带有 的元素id="foo.bar",您可以使用选择器$("#foo\\.bar")

我想知道有没有什么函数可以帮助我摆脱那些元字符?</p>

4

1 回答 1

3

看看这个关于 jQuery 错误的视频,作者有一个他写的函数,它使用正则表达式来正确地转义所有 jQuery 选择器@52:18。旁注:视频很棒,每个使用 jQuery 的开发人员都应该观看。

为后人抄录:

String.prototype.escapeSelector = function () {
    return this.replace(
        /([$%&()*+,./:;<=>?@\[\\\]^\{|}~])/g,
        '\\$1'
    );
};

你会这样使用它:

$('#' + 'foo.bar'.escapeSelector());
于 2012-08-07T13:06:28.070 回答