2

特定の文字列を含むすべてのフィールドを正確に強調表示しようとしています。以下の例では、someuser2、someuser3などにも一致します。

$("div.forumbody .username:contains('someuser')").css("background", "#6a5acd");

正確な文字列を検索して、フィールド#6a5acdの背景を作成するにはどうすればよいですか?前もって感謝します。

4

3 に答える 3

3

これを試してください

カスタム セレクターを作成する

$.expr[':'].textEquals = function(a, i, m) {
return $(a).text().match("^" + m[3] + "$");
};

そしてそれを使う

$("div.forumbody .username:textEquals('someuser')").css("background", "#6a5acd");
于 2012-04-18T14:08:04.753 に答える
1

それは私には正しいように見えます...コンテインなしでセレクターが正しく機能していることを確認してください...

$("div.forumbody .username").css("background", "#6a5acd");

編集

テキスト フィールドの場合:

$("div.forumbody .username[value*=someuser]").css("background", "#6a5acd");

または、それらが事前に入力されていない場合(Govindの回答から構築):

$.expr[':'].valHas = function(a, i, m) {
  return $(a).val().match("^" + m[3] + "$");
};

$("div.forumbody .username:valHas('someuser')")

ダブルエディット

これは動作をテストし、より簡単にしました:

jQuery("div.forumbody .username:text[value*='someuser']").css("background", "#6a5acd");
于 2012-04-18T14:27:28.583 に答える
0

拡張疑似関数を追加してみてください:

$.expr[':'].textEquals = $.expr.createPseudo(function(arg) {
    return function( elem ) {
        return $(elem).text().match("^" + arg + "$");
    };
});

次に、次のことができます。

$("div.forumbody .username:textEquals('someuser')").css("background", "#6a5acd");
于 2013-08-27T10:13:50.520 に答える