4

id 'word' を持つ div 内のスパンに値 v の内部 HTML がある場合に true を返す jquery 関数を作成するにはどうすればよいですか? セレクターについては、次のものがあります。

$('#word span').html()

現在、そのdiv内に5つのスパンタグがあるため、それらを反復処理してブール値を返す正しい方法について混乱しています。

4

3 に答える 3

4

のように使用できますが、正確な値:containsとしてではなく、「v」 を含む$("#word span:contains(v)")スパンが選択されます。選択された最初の要素の html 文字列のみを返すため、おそらく反復して正確な比較を行う必要があります。.html.each

var count = 0;
$("#word span").each(function () {
   if ($.trim($(this).text()) === 'v') {
      count++;
   }
});
于 2012-12-27T20:27:55.427 に答える
2

メソッドを使用できますfilter

$("#word span").filter(function () {
      return this.innerHTML === v; // in case that v is a variable
      // return $(this).text() === 'v';  
}).length;
于 2012-12-27T20:29:49.583 に答える
2

containsセレクター_

すでに jQuery を使用しているため、その.containsメソッドまたは ':contains' 疑似セレクターを利用できます。

$("#word span").contains("word")

また

$("#word span:contains(word)")

これは、単語を含む各スパンに対して true を返すのではなく、その単語を含む要素に対して true を返します。次のように操作できる、一致した要素のリストが残ります。

var $matched = $("word span").contains("word");

$matched.each(function (i, el) {
    // do something with the el
});

参照

http://api.jquery.com/jQuery.contains/

于 2012-12-27T20:27:33.450 に答える