質問

セレクター<!> quot; td > a.leftmenuitem:last, div > a.leftmenuitem:last <!> quot;がありますが、少し簡略化したいと思います。 <!> quot; * > a.leftmenuitem:last <!> quot;、<!> quot; td, div > a.leftmenuitem:last <!> quot ;、および<!> quot; (td, div) > a.leftmenuitem:last <!> quot;を試しましたが、どれも最初のセレクターのように動作します。この種のことは、セレクター構文でそれぞれに個別のセレクターを作成しないと不可能なのですか?

役に立ちましたか?

解決

単純化することはできません:

td > a.leftmenuitem:last, div > a.leftmenuitem:last

共通点がないため、1つの式ですべての関連するtdおよびdiv要素を選択できます。たとえば、両方にクラスのブラーがある場合は、次のことができます。

.blah > a.leftmenuitem:last

ただし、回避できる場合はこの種類の式を使用しないでください。クラスセレクターは低速です(IDおよびタグセレクターと比較して)。

ジャストに何か問題がありますか

a.leftmenuitem:last

ところで、:lastが正しい選択だと確信していますか?多くの人が誤ってそれを使用し、:last-childと間違えています。 <=>は、ページで最後に一致した要素である1つの要素のみに一致します。

他のヒント

大きいもの、時には速いもの。 td の代わりに * を使用すると、クエリが非常に遅くなります。

あなたがそれを単純化できるとは思わない。代わりに、ユニークなクラスに興味のあるリンクを提供することを選択します。これにより、単純に"a.<my-unique-class>:last"を実行できます。このようにして、jqueryは、親が<a>要素であることを心配することなく、一致するすべての<td>タグを単純にスキャンできます。

セレクターは非常にシンプルです。単純化する場合は、次のようなことができます。

$('a.leftmenuitem:last').parent().doWhateverYouWereGoingToDo();

ただし、これにより実行時間が短縮されるとは思いません。

たぶん混乱しているかもしれませんが、もしも

* > a.leftmenuitem:last

あなたのために働くでしょう、それでは一緒に行きましょう

a.leftmenuitem:last

代わりに?

使用しているセレクターは

です
Parent > Child 

は、Childで指定された要素のParentで指定されたすべての子要素に一致します。 <a>要素と<div>要素の子ではないページの他の場所で<td>要素を使用している場合を除き、なぜ

を使用しないのか
$('a.leftmenuitem:last')

何かが足りませんか?

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