是否有任何函数可以帮助逃避jquery选择器中包含的所有元字符?
直接来自jquery文档:
如果你想使用任何元字符(例如!"#$%&'()*+,./:;?@[\]^&a{|}~)
作为字面的一部分一个名称,你必须用两个反斜杠转义字符:\。例如,如果你有一个id="foo.bar"
的元素,你可以使用选择器$("#foo\\.bar")
。
我想知道是否有任何function可以帮助我逃避那些元字符?
看看这个关于jQuery错误的video ,作者有一个函数,他使用正则表达式来正确地逃避所有jQuery选择器@ 52:18。 旁注:video很棒,每个使用jQuery的开发者都应该观看它。
为后代转录:
String.prototype.escapeSelector = function () { return this.replace( /([$%&()*+,./:;<=>?@\[\\\]^\{|}~])/g, '\\$1' ); };
你会像这样使用它:
$('#' + 'foo.bar'.escapeSelector());