سؤال

لدي محدد،"td > a.leftmenuitem:last, div > a.leftmenuitem:last"و أود أن تبسط قليلا.لقد حاولت "* > a.leftmenuitem:last", "td, div > a.leftmenuitem:last"،و "(td, div) > a.leftmenuitem:last"،أي التي تعمل بالطريقة محدد الأول لا.هذا هو النوع من الشيء غير ممكن في محدد الجملة دون منفصل محدد لكل?

هل كانت مفيدة؟

المحلول

لا يمكنك تبسيط:

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

دون أن يكون هناك شيء مشترك حتى يمكنك تحديد كافة ذات الصلة td div العناصر مع بعضها التعبير.على سبيل المثال إذا كان كلاهما من الدرجة بلاه هل يمكن أن تفعل:

.blah > a.leftmenuitem:last

ولكن لا تستخدم هذا النوع من التعبير إذا كان يمكنك تجنب ذلك. محددات الطبقة بطيئة (مقارنة مع هوية العلامة محددات).

هل هناك شيء خاطئ ؟

a.leftmenuitem:last

?

بالمناسبة, هل أنت متأكد :last هو الاختيار ؟ الكثير من الناس عن طريق الخطأ في استخدامه ، متصورا أنه بالنسبة :last-child. :last فقط مباراة واحدة عنصر آخر مطابقة العناصر الموجودة على الصفحة.

نصائح أخرى

ما هو أكبر ، وأحيانا أسرع.عند استخدام * بدلا من td, الاستعلام الخاص بك أبطأ بكثير.

وأنا لا أعتقد أنك يمكن تبسيط ذلك. فما استقاموا لكم فاستقيموا بدلا تختار نحو إعطاء الروابط كنت مهتما في فئة فريدة من نوعها، بحيث يمكنك ببساطة القيام "a.<my-unique-class>:last". بهذه الطريقة مسج يمكن ببساطة مسح كافة العلامات <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