Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Селектор вида $('a[goBack]', someDiv) не находит элементов (https://javascript.ru/forum/jquery/12904-selektor-vida-%24-%27%5Bgoback%5D%27-somediv-ne-nakhodit-ehlementov.html)

балерун 08.11.2010 10:22

Селектор вида $('a[goBack]', someDiv) не находит элементов
 
Привет, есть див, содержащий ссылки (теги А) с атрибутом goBack. Нужно выбрать все эти ссылки, но только в пределах этого дива, по идее должна была помочь конструкция:
$('a[goBack]', someDiv)

но она ничего не находит (
alert($('a[goBack]', someDiv).length); // показывает 0

Если написать просто
$('a[goBack]')

то ссылки выбираются, но на всей странице. Сам someDiv - это jquery-вский элемент. Он находится, я могу обращаться к его свойствам, все нормально, а вот в такой конструкции не работает. Может я что-то не понял?
Еще, сами ссылки не являются непосредственными дочерними узлами, а находятся в еще каких-то узлах, вроде такого:
<div id="someDiv">
    <p><a goBack>назад</a></p>
</div>

Gozar 08.11.2010 10:35

удалено.

monolithed 08.11.2010 10:40

$('#someDiv a[href]').length

или просто:
$('#someDiv a').length

балерун 08.11.2010 11:01

Цитата:

$('#someDiv a[href]').length

Угу, а в таком виде, как я писал сделать нельзя? Если можно сделать, только как ты написал, то почему бы и нет?)

балерун 08.11.2010 11:08

Цитата:

Сообщение от Gozar (Сообщение 77966)
<a goBack>
- это чувашская разновидность диалекта HTML?
1. у a должен быть атрибут href=""
2. у a нет атрибута goBack
3. А вообще атрибут нужно писать название="Значение"

Есть див, в этом диве должны быть ссылки "назад". href для этой ссылки я не знаю, он меняется динамически во время работы скрипта. Я задаю атрибут "goBack", для всех ссылок, которые должны возврщать назад, а позже (когда уже известен адрес "назада"), то и проставляю им всем href.
Если есть более простой способ выбрать только определенные ссылки, то буду рад услышать)

Kolyaj 08.11.2010 11:14

Выставлять css-класс goBack, а не атрибут.

micscr 08.11.2010 11:18

alert($('a[goback=""]', someDiv).length); // показывает 1

балерун 08.11.2010 12:44

Цитата:

Выставлять css-класс goBack, а не атрибут.
Оу... мне казалось, это нормальная практика ставить несуществующие атрибуты. В книге по js (которая с носорогом), там автор так делал, вот я и решил, что так делают все и что так правильно.
В данном случае можно использовать класс. А если есть несуществующий атрибут со значением, например itemId="345", то его лучше (имхо) уже так и оставить. Довольно наглядно.

monolithed 08.11.2010 13:03

Цитата:

Сообщение от балерун
Оу... мне казалось, это нормальная практика ставить несуществующие атрибуты.

Самообман

Цитата:

Сообщение от балерун
В книге по js (которая с носорогом)

Автора зовут: Девид Флэнаган

Цитата:

Сообщение от балерун
В данном случае можно использовать класс.

Класс можно генерировать динамически
А вообще, есть атрибут rel записывайте в него значения (к примеру адрес ссылки и пр.)

балерун 08.11.2010 13:10

Ок, буду отвыкать от этой привычки)

Цитата:

Автора зовут: Девид Флэнаган
Да, точно


Часовой пояс GMT +3, время: 03:32.