2

:containsセレクターに単一の括弧を含めると、エラーが発生します。

例えば

$("a:contains('Speed (mph')")

エラーを返します

構文エラー、認識されない式:(mph')

最後に閉じ括弧を追加すると、ステートメントは正常に実行されます。ただし、括弧が1つであることが多い場所を照会できる必要があります。

ここで何が起こっているのでしょうか。これを回避するにはどうすればよいですか。

編集

私の実際のコードでは、:contains部分が変数として渡されます

例えば

var searchText = 'Speed (mph';
var result = $("a:contains('" + searchText  + "')");
4

2 に答える 2

2

あなたは使用できるはずです$("a:contains('Speed \\(mph')")

http://api.jquery.com/category/selectors/から

メタ文字 ( !"#$%&'()*+,./:;<=>?@[]^`{|}~ など) をたとえば、id="foo.bar" の要素がある場合、セレクター $("#foo\.bar") を使用できます。W3C CSS 仕様有効な CSS セレクターに関する完全なルール セットが含まれています。

于 2011-06-28T03:40:54.010 に答える
0

Matthew Flaschen のリンクから、次のようなフィルタ関数を使用できます。

    var searchRegex = new RegExp("Speed \\(mph","g");
    var result = $('a').filter(function(i, el) {
        return $(el).text().match(searchRegex);
    });
于 2011-06-28T03:37:52.160 に答える