CSS-селекторы в Javascript со всеми тегами H - PullRequest
6 голосов
/ 22 октября 2009

Используя библиотеку Prototype JS, я хочу выбрать все дочерние элементы ссылки ( A теги) независимо от того, является ли их родительский элемент: H1 , H2 , H3 , H4 или H5 (и т. Д.) С простым CSS-селекторным правилом (в отличие от других JS, таких как циклы и т. Д.).

Итак, простой, но долгий способ сделать это:

$('page').select('h1 > a, h2 > a, h3 > a, h4 > a, h5 > a')

Полагаю, мне нужно подстановочное свойство, например h *, которого не существует.

Может быть, вышеприведенный пример - путь, но я надеюсь, что есть более простой, более краткий и эффективный способ сделать это.

Советы приветствуются.

Ответы [ 4 ]

4 голосов
/ 23 октября 2009

Согласно комментарию Фабьена Менагера к исходному вопросу, похоже, что не существует простого селектора CSS, который я мог бы использовать, кроме того, что у меня уже есть.

$('page').select('h1 > a, h2 > a, h3 > a, h4 > a, h5 > a')

Хотя есть и другие варианты, если я хочу проявить программирование в этом вопросе, или пустой JQuery (что мне не подходит), я специально ищу правило CSS.

Спасибо всем, кто пытался помочь.

3 голосов
/ 23 октября 2009

Использование jQuery:

$(":header a")
2 голосов
/ 23 октября 2009

http://docs.jquery.com/Selectors/header говорит:

: header Соответствует всем элементам заголовков, таким как h1, h2, h3 и т. Д.

Добавляет цвет фона и текста ко всем заголовкам на странице.

$(":header").css({ background:'#CCC', color:'blue' });
1 голос
/ 25 октября 2009

получил ответ на этот вопрос от разработчиков-прототипов. это лучшие и единственные решения, пока, по крайней мере:

$$('h1 > a, h2 > a, h3 > a, h4 > a, h5 > a, h6 > a')
$('page').select('h1 > a, h2 > a, h3 > a, h4 > a, h5 > a')

Тем не менее, следующая версия Prototype позволит вам выбрать механизм выбора и по умолчанию будет иметь значение Sizzle . Псевдоселектор :header на самом деле является частью Sizzle, поэтому будет доступен в будущих версиях прототипа (если вы выберете sizzle в качестве механизма выбора). Я предполагаю, что это не было ранее включено, поскольку это не является частью какой-либо спецификации.

...