Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.10.2013, 15:20
Аспирант
Отправить личное сообщение для Round Посмотреть профиль Найти все сообщения от Round
 
Регистрация: 08.04.2012
Сообщений: 49

как найти селектор :last в каждом третьем уровне ДОМа?
есть вложенность элементов в ДОМе:

<div>

    <a href="#">
        <span>Beer</span>
        <span class="amp">&nbsp;&amp;&nbsp;</span>
    </a>
    <a href="#">
        <span>Fresh</span>
        <span class="amp">&nbsp;&amp;&nbsp;</span>
    </a>

</div>
    
    <br />
    
<div>

    <a href="#">
        <span>Blue</span>
        <span class="amp">&nbsp;&amp;&nbsp;</span>
    </a>
    <a href="#">
        <span>Water</span>
        <span class="amp">&nbsp;&amp;&nbsp;</span>
    </a>  

</div>

в песочнице


$("div span.amp:last").hide();



В итоге прячется самый последний .amp в ДОМе.

А я хочу спрятать каждый последний .amp в каждом диве. Как это можно сделать?
Ответить с цитированием
  #2 (permalink)  
Старый 18.10.2013, 15:40
Аватар для BETEPAH
Профессор
Отправить личное сообщение для BETEPAH Посмотреть профиль Найти все сообщения от BETEPAH
 
Регистрация: 23.06.2011
Сообщений: 1,165

$("div").find("span.amp:last").hide();
Ответить с цитированием
  #3 (permalink)  
Старый 18.10.2013, 15:44
Аспирант
Отправить личное сообщение для Round Посмотреть профиль Найти все сообщения от Round
 
Регистрация: 08.04.2012
Сообщений: 49

BETEPAH, точно... и логично.

Спасибо!
Ответить с цитированием
  #4 (permalink)  
Старый 18.10.2013, 15:59
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от BETEPAH
$("div").find("span.amp:last").hide();
не рекомендую использовать нестандартные псевдо-селекторы, так как ради них, джуквери запускает собственный поиск элементов, что приводит к понижению производительности.

Лучше пишите максимально если возможно стандартные псевдо-селекторы:
$("div").find("span.amp:last-child").hide();
таким образом, браузер не выдаст ошибку при обработки такого селектора, и джуквери не запустит свой внутренний движок поиска.

try {
    document.querySelectorAll('span.amp:last');
    alert('Используется нативный метод');
} catch(_e_) {
    alert('Запустился jQuery движок');
}
try {
    document.querySelectorAll('span.amp:last-child');
    alert('Используется нативный метод');
} catch(_e_) {
    alert('Запустился jQuery движок');
}
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine

Последний раз редактировалось devote, 18.10.2013 в 16:02.
Ответить с цитированием
  #5 (permalink)  
Старый 18.10.2013, 16:47
Аспирант
Отправить личное сообщение для Round Посмотреть профиль Найти все сообщения от Round
 
Регистрация: 08.04.2012
Сообщений: 49

Сообщение от devote Посмотреть сообщение
Лучше пишите максимально если возможно стандартные псевдо-селекторы:
$("div").find("span.amp:last-child").hide();
таким образом, браузер не выдаст ошибку при обработки такого селектора, и джуквери не запустит свой внутренний движок поиска.
Но так не работает...

или я что то упускаю?
Ответить с цитированием
  #6 (permalink)  
Старый 18.10.2013, 17:08
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от Round
Но так не работает...
ну вообще конечно есть отличия от стандартного псевдо-класса.. last-child возвращает последние элементы у родителя, а :last возвращает последний элемент в списке.. Это единственная разница. Для вашего случая все же придется юзать просто :last увы
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как реализовать задачу? (автокомплит и много инпутов из под дома) h-zone jQuery 1 06.11.2009 20:09
Как можно найти разрешение рабочей области браузера? Влад Общие вопросы Javascript 3 20.07.2009 10:18
Как найти конец плоского файла Don_001 Общие вопросы Javascript 1 07.07.2009 12:47
как найти нужный объект? `p r o x y jQuery 2 05.05.2009 01:12
Как найти путь к файлу для модификации? JuliaMilan Firefox/Mozilla 0 31.03.2009 14:06