Вопрос

У меня есть селектор".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, вы могли бы сделать:

.blah > a.leftmenuitem:last

Но не используйте такого рода выражения, если вы можете этого избежать. Селекторы классов работают медленно (по сравнению с селекторами идентификаторов и тегов).

Есть ли что-то неправильное в just?

a.leftmenuitem:last

?

Кстати, вы уверены :last это правильный выбор?Многие люди ошибочно используют его, принимая за :last-child. :last будет соответствовать только одному элементу, последнему совпадающему элементу, найденному на странице.

Другие советы

Чем больше, тем быстрее. Когда вы используете * вместо 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