特定の文字列を含むすべてのフィールドを正確に強調表示しようとしています。以下の例では、someuser2、someuser3などにも一致します。
$("div.forumbody .username:contains('someuser')").css("background", "#6a5acd");
正確な文字列を検索して、フィールド#6a5acdの背景を作成するにはどうすればよいですか?前もって感謝します。
これを試してください
カスタム セレクターを作成する
$.expr[':'].textEquals = function(a, i, m) {
return $(a).text().match("^" + m[3] + "$");
};
そしてそれを使う
$("div.forumbody .username:textEquals('someuser')").css("background", "#6a5acd");
それは私には正しいように見えます...コンテインなしでセレクターが正しく機能していることを確認してください...
$("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");
拡張疑似関数を追加してみてください:
$.expr[':'].textEquals = $.expr.createPseudo(function(arg) {
return function( elem ) {
return $(elem).text().match("^" + arg + "$");
};
});
次に、次のことができます。
$("div.forumbody .username:textEquals('someuser')").css("background", "#6a5acd");