6

以前の質問を再質問する必要があります。おそらく午前 1 時に質問するべきではなかったでしょう :P

jquery の属性セレクターを使用して、いくつかの属性が見つからないようです。

$("*[some=value]");

これまでのところ、フォームのアクション属性と img の src 属性を使用できないようです。機能しない属性のリストがどこかにあるので、それらのカスタムセレクターを作成できますか?

再度、感謝します!


編集: 一部のセレクターが期待どおりに機能しないとは誰も信じていないようです。この例を見てください:このサイト(firebugging 用に jquery 1.3 を持っています) には、次のようなフォームがあります:

<form style="display: inline;" method="get" action="list">

(「現在のダウンロードを検索」ドロップダウン周辺)。firebug を開いてこのセレクターを試すと、次のようになります。

$("form[action=list]"); 

フォームを選択することはできません。action 属性について特別なことは何もありません。そのページのロゴ画像の src についても同様です。

<img alt="Logo" src="/p/aost/logo?logo_id=1238551994"/>

機能しないセレクターは次のとおりです。

$("img[src=/p/aost/logo?logo_id=1238551994");

確かに、私はワイルドカード マッチを行うことができますが、それは私が求めているものではありません。

4

2 に答える 2

11

サポートされていない属性の「リスト」はありません。これは jQuery のバグです。

これに関するオープンチケットは次のとおりです。

どうやらバグ間の共通点は、jQuery が、HTML で定義されている実際の action/src 属性ではなく、指定したセレクター文字列を完全な URL と比較していることです。これは、 attributeEndsWithまたはattributeContainsセレクターがこの場合に機能する理由を説明しています。

フォーム/画像にクラス/IDを与えて、それを乗り越えることをお勧めします。

于 2009-04-13T17:04:44.153 に答える
4

それはすべて、使用している jQuery のバージョンによって異なります。

1.3 より前では、@ 表記を使用できました。

$("*[@name=value]")

したがって、@ を追加すると役立つ場合があります。

それ以外は、マークアップで定義されているのとまったく同じ属性値を入力する必要があります。たとえば、 で画像を見つけようとしている場合はsrc="http://example.com/dog.jpg"、機能しないため、これを行わないでください。

$("img[src=dog.jpg")

srcが「dog.jpg」に等しい画像を検索しようとするため、それを含んでいません。

その一部のみを定義する属性を検索したい場合は、jQuery API セレクターのページを読むことをお勧めします。たとえば、srcに「dog.jpg」を含むすべての画像を取得する には、次のようにします。

$("img[src*=dog.jpg]")

同様に、属性が特定の値/文字列で開始または終了する要素を見つけることができます。

于 2009-04-13T16:49:38.120 に答える