web-dev-qa-db-ja.com

特定のテキストが含まれている場合は、jqueryを実行します

太字の要素に特定のテキストが含まれている場合にのみ、jqueryを実行する必要があります。私は何を間違えていますか?

 <script>
 if ($('b:contains('Choose a sub category:')')) {

 $("td.colors_backgroundneutral").css("background-color","transparent");
 $("td.colors_backgroundneutral").children(':first-child').attr("cellpadding","0");
 };
 </script>
14
user764728

文字列を中断する一重引用符内の単一引用符の使用に加えて、ifステートメント内でjQueryセレクターを使用しています。 このセレクタ は、「サブカテゴリの選択」を含むbタグのみをフィルタリングします。そして、それらの要素のリストを返します。ブール値を返しません。 代わりに、.contains()メソッドを次のように使用します。

_if($("b").contains("Choose a sub category")) {
   // do stuff 
}
_

もっと読むことができます こちら

EDIT:.contains()メソッドは非推奨のように見えるため、純粋なJSソリューションを次に示します。

_var el = document.getElementById("yourTagId") // or something like document.getElementsByTagName("b")[0] if you don't want to add an ID.
if (el.innerHTML.indexOf("Choose a sub category") !== -1) {
    // do stuff
}
_
27
Thomas Shields

私はこれを常に使用して、要素が存在するかどうかを判断しました。

if ($('b:contains("Choose a sub category:")').length > 0) { /*do things*/}
17
dev4life
 if ($("b").has(":contains('Choose a sub category:')").length) { 
 /*Your Stuff Here*/
 }
4
BTC