1

jquery docs から直接:

メタ文字 (名前のリテラル部分など) を使用する場合は、2!"#$%&'()*+,./:;<=>?@[\]^&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 に答える