1

私のページは、次のようなコメントを表示します。

<div class="ReadComment comment#1">
    First comment
    <br>
    <span>posted by vi vi on 2/25/2013</span>
    <p>My first comment</p>
</div>

「comment#」クラスを使用して、コメントの順序を列挙します。

jqueryセレクターを使用して、クラスが「コメント#」で始まるすべての要素を選択しようとしました:

var コメント = $("div[class^='comment#']");

しかし、このようには機能しません。その代わり

var comments = $("div[class*='comment#']");

完全に正常に動作します。

jqueryは各要素のクラスを個別にチェックしていると思いました。したがって、私が書く[class^='comment#']と、最初にクラスをチェック ReadCommentし、次にcomment#クラスをチェックします。

しかし、クラスの行だけをチェックしているようです。そうですか?誰かがそれがどのように機能するか説明できますか? 説明の検索に失敗しました)ありがとう)

4

2 に答える 2

4

これらは属性セレクターです。あなたの場合、class属性が文字通り string で始まるかどうかを確認しますが、そうではありません(クラス名にも有効な文字ではcomment#ないと思います)。#

*=comment#が属性の値の範囲内にあるかどうかを確認するため、機能します。

より高度なフィルタリングを行いたい場合は、.filter()自分で関数を使用して作成する必要があります。

于 2013-02-25T08:54:56.183 に答える
2

jQuery#ではDOMid選択用に予約されています。

comment#このコードが行うことは、コメントタグを探すことidです。

これは正しくありません。$("div[class*='comment#']")このselectDOMwith class containsは、クラス名の最後または最初、または任意の場所にcomment#含まれるクラスを検索することを意味します。comment#

于 2013-02-25T08:55:58.473 に答える