Упрощение выбора элементов за счет использования селекторных функций

Содержание материала

Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна
 

Селекторным функциям можно передавать сразу несколько селекторов, например:

// выбрать первый встреченный элемент документа с классом
// highClass или lowClass
var х = document.querySelector(".highClass", ".lowClass");

B случае функции querySelector () выбирается первый встреченный элемент, соответствующий любому из указанных селекторов. В случае же функции querySelectorAll О возвращаются все элементы, соответствующие любому из перечисленных селекторов. При наличии нескольких селекторов они разделяются запятыми. Новые селекторные функции упрощают выбор разделов документа, что раньше представляло собой довольно трудную задачу. Предположим, например, что вы хотите иметь возможность выбора ячейки таблицы, над которой в данный момент находится указатель мыши. Это очень легко делается с помощью селекторов, как показано в листинге 1.3. Файл этого листинга также находится в папке code / intro.

Листинг 1.3. Использование селекторных функций

<!DOCTYPE html>
<html>
<head>
<meta charset="cpl251M />
<title>npnMep поиска с помощью селекторов
   </title>
<style type="text/ess">
   td {
   border-style: solid;
   border-width: lpx;
   font-size: 300%;
   }
   td:hover {
   background-color: cyan;
   }
   #hoverResult {
   color: green;
   font-size: 200%;
   }
   </style>
</head>
<body>
<section>
<!-- создать таблицу размером 3 x 3 -->
<table>
<tr>
<td>Al</td> <td>A2</td> <td>A3</td>
</tr>
<tr>
<td>Bl</td> <td>B2</td> <td>B3</td>
</tr>
<tr>
<td>Cl</td> <td>C2</td> <td>C3</td>
</tr>
</table>
<div>Установите фокус на кнопке, наведите указатель мыши на
 ячейку таблицы и нажмите клавишу <Enter> для идентификации ячейки
 путем вызова метода querySelector('td:hover').</div>
 cbutton type="button" id="findHover" autofocus>Haйти объект
 поиска 'td:hover'</button>
 <div id="hoverResult"></div>
 <script type="text/javascript">
 document.getElementByld("findHover").onclick = function() {
 // найти ячейку таблицы, над которой находится
 // указатель мыши
 var hovered = document.querySelector("td:hover");
 if (hovered)
 document.getElementByld("hoverResult").innerHTML =
 hovered.innerHTML;
 }
 </script>
 </section>
 </body>
 </html> 

Как видно из этого примера, для нахождения элемента, на который наведен указатель мыши, потребовалась всего одна строка кода:

var hovered = document.querySelector("td:hover");

Примечание:

Селекторные функции не только более удобны, но зачастую и работают быстрее, чем средства обхода DOM для извлечения дочерних элементов с использованием традиционных библиотек. Для реализации быстро работающих таблиц стилей в браузерах используются чрезвычайно эффективные процедуры поиска с помощью селекторов. В том, что в Консорциуме W3C отделили официальную спецификацию селекторов от спецификации CSS, нет ничего удивительного. Как вы уже видели, сфера применения селекторов не ограничивается стилевым оформлением документов. Подробное описание новых селекторов выходит за рамки книги, но если вы разработчик, ищущий оптимальные способы манипулирования элементами DOM, то новые селекторные функции, обеспечивающие быструю навигацию по структуре приложения, несомненно, должны вас заинтересовать.


Обмениваться, хранить, передавать Ваши файлы стало просто как никогда.
yandex-disk
Читать подробнее: для чего Yandex-Диск проекту Mini-Server. Практика установки, настройки и использования сетевого хранилища на Ubuntu server LTS 12.04 в статье Резервное копирование сервера Ubuntu на Яндекс Диск.

>> Ubuntu 12.04 + Nginx Скачать сервер
>> Fedora 15 Скачать сервер
>> Простой Debian 6.0.6 Скачать сервер
>> CentOS 6.0 и
+ (5.6) другой
Скачать сервер
>> OpenSUSE 11.4
MAX
Скачать сервер

Вход на сайт

ВНИМАНИЕ!

Регистрация на сайте только по согласованию с администратором ресурса. Обращаться через форму обратной связи.