是否有任何函数可以帮助转义 jQuery 选择器中包含的所有元字符?

is there any function which can help escape all meta-characters contained in jquery‘s selector?

本文关键字:包含 字符 选择器 jQuery 函数 任何 转义 帮助 是否      更新时间:2023-09-26

直接来自jquery文档:

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

想知道是否有任何功能可以帮助我摆脱那些元字符?

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

转录给后人:

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

你会这样使用它:

$('#' + 'foo.bar'.escapeSelector());