セレクター「td > a.leftmenuitem:last, div > a.leftmenuitem:last
」がありますが、少し簡略化したいと思います。* > a.leftmenuitem:last
「 」、「td, div > a.leftmenuitem:last
」 、「」を試しましたが(td, div) > a.leftmenuitem:last
、どちらも最初のセレクターのようには機能しません。この種のことは、セレクター構文で、それぞれに個別のセレクターを作成しないと不可能ですか?
6 に答える
単純化することはできません:
td > a.leftmenuitem:last, div > a.leftmenuitem:last
共通点がないため、1つの式で関連するすべてのtd要素とdiv要素を選択できます。たとえば、両方にクラスがあった場合、次のことができます。
.blah > a.leftmenuitem:last
ただし、回避できる場合は、この種の式を使用しないでください。クラスセレクターは遅いです(IDおよびタグセレクターと比較して)。
何か問題がありますか?
a.leftmenuitem:last
?
ちなみに、:last
正しい選択は確かですか?多くの人がそれを誤って使用し、それをと間違えました:last-child
。:last
ページ上で最後に一致する要素である1つの要素のみに一致します。
大きいものは、時には速いです。tdの代わりに*を使用すると、クエリがはるかに遅くなります。
あなたのセレクターは十分に単純です。単純化したい場合は、次のようにすることができます。
$('a.leftmenuitem:last').parent().doWhateverYouWereGoingToDo();
ただし、これによって実行時間が短縮されるとは思えません。
多分私は混乱しているだけですが
* > a.leftmenuitem:last
あなたのために働くだろう、そしてなぜ一緒に行きませんか
a.leftmenuitem:last
代わりは?
単純化できるとは思いません。代わりに、あなたが興味のあるリンクをユニークなクラスに与えることを選びます。そうすれば、あなたは簡単に行うことができます"a.<my-unique-class>:last"
。そうすれば、jqueryは、親が要素<a>
であることを気にすることなく、一致するすべてのタグを簡単にスキャンできます。<td>
使用しているセレクターは
Parent > Child
Child
で指定された要素ので指定されたすべての子要素に一致しますParent
。および要素<a>
の子ではないページの他の場所で要素を使用している場合を除いて、単に使用しないのはなぜですか<div>
<td>
$('a.leftmenuitem:last')
私は何かが足りないのですか?