質問

する必要がある 再質問する 私の古い質問、おそらく午前 1 時に質問すべきではなかった :P

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

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

これまでのところ、formのaction属性とimgのsrc属性は使用できないようです。機能しない属性のカスタム セレクターを作成できるリストがどこかにありますか?

再度、感謝します!


編集: 一部のセレクターが期待どおりに動作しないとは誰も信じていないようです。この例を見てください。の上 このサイト (ファイアバグ用に jquery 1.3 が含まれています) 次のようなフォームがあります。

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

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

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

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

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

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

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

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

役に立ちましたか?

解決

サポートされていない属性の「リスト」は存在すべきではないため、存在しません。これは jQuery のバグです。

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

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

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

他のヒント

それはすべて、使用している 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]")

同様に、属性が特定の値/文字列で始まるか終わる要素を検索できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top