add thead
This commit is contained in:
parent
891e5d1971
commit
54e4f0c859
15 changed files with 70 additions and 2 deletions
|
@ -31,11 +31,14 @@ var result = nodeA.compareDocumentPosition(nodeB);
|
|||
Возвращаемое значение -- битовая маска (см. [](/bitwise-operators)), биты в которой означают следующее:
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Биты</th>
|
||||
<th>Число</th>
|
||||
<th>Значение</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr><td>000000</td><td>0</td><td>`nodeA` и `nodeB` -- один и тот же узел</td></tr>
|
||||
<tr><td>000001</td><td>1</td><td>Узлы в разных документах (или один из них не в документе)</td></tr>
|
||||
<tr><td>000010</td><td>2</td><td>`nodeB` предшествует `nodeA` (в порядке обхода документа)</td></tr>
|
||||
|
@ -43,6 +46,7 @@ var result = nodeA.compareDocumentPosition(nodeB);
|
|||
<tr><td>001000</td><td>8</td><td>`nodeB` содержит `nodeA`</td></tr>
|
||||
<tr><td>010000</td><td>16</td><td>`nodeA` содержит `nodeB`</td></tr>
|
||||
<tr><td>100000</td><td>32</td><td>Зарезервировано для браузера</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
Понятие "предшествует" -- означает не только "предыдущий сосед при общем родителе", но и имеет более общий смысл: "раньше встречается в порядке [прямого обхода](http://algolist.manual.ru/ds/walk.php) дерева документа.
|
||||
|
|
|
@ -321,11 +321,15 @@ IE тоже поддерживает XPath, но эта поддержка не
|
|||
|
||||
Есть 6 основных методов поиска элементов DOM:
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<td>Метод</td>
|
||||
<td>Ищет по..</td>
|
||||
<td>Ищет по...</td>
|
||||
<td>Ищет внутри элемента?</td>
|
||||
<td>Поддержка</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>`getElementById`</td>
|
||||
<td>`id`</td>
|
||||
|
@ -362,6 +366,7 @@ IE тоже поддерживает XPath, но эта поддержка не
|
|||
<td>✔</td>
|
||||
<td>везде</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
Практика показывает, что в 95% ситуаций достаточно `querySelector/querySelectorAll`. Хотя более специализированные методы `getElement*` работают чуть быстрее, но разница в миллисекунду-другую редко играет роль.
|
||||
|
|
|
@ -507,10 +507,13 @@ alert( document.body.my ); // 123 в IE8-
|
|||
Таблица сравнений для атрибутов и свойств:
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Свойства</th>
|
||||
<th>Атрибуты</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Любое значение</td>
|
||||
<td>Строка</td>
|
||||
|
@ -523,6 +526,7 @@ alert( document.body.my ); // 123 в IE8-
|
|||
<td>Не видны в `innerHTML`</td>
|
||||
<td>Видны в `innerHTML`</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
Синхронизация между атрибутами и свойствами:
|
||||
|
|
|
@ -41,7 +41,10 @@
|
|||
|
||||
Таблица несовместимостей:
|
||||
<table>
|
||||
<thead>
|
||||
<tr><th>Клавиша</th><th>Firefox</th><th>Остальные браузеры</th></tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>[key ;]</td>
|
||||
<td>59</td>
|
||||
|
@ -57,6 +60,7 @@
|
|||
<td>109</td>
|
||||
<td>189</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
Остальные коды одинаковы, код для нужного символа будет в тестовом стенде.
|
||||
|
@ -218,10 +222,14 @@ document.getElementById('only-upper').onkeypress = function(e) {
|
|||
Стоит иметь в виду три основных категории клавиш, работа с которыми отличается.
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Категория</th>
|
||||
<th>События</th>
|
||||
<th>Описание</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Печатные клавиши [key S] [key 1] [key ,]</td>
|
||||
<td>`keydown`
|
||||
|
@ -266,6 +274,7 @@ document.getElementById('only-upper').onkeypress = function(e) {
|
|||
Кроме того, если сочетание вызвало браузерное действие или диалог ("Сохранить файл", "Открыть" и т.п., ряд диалогов можно отменить при `keydown`), то может быть только `keydown`.
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
Общий вывод можно сделать такой:
|
||||
|
|
|
@ -182,11 +182,14 @@
|
|||
События изменения данных:
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Событие</th>
|
||||
<th>Описание</th>
|
||||
<th>Особенности</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>`change`</td>
|
||||
<td>Изменение значения любого элемента формы. Для текстовых элементов срабатывает при потере фокуса.</td>
|
||||
|
@ -208,6 +211,7 @@
|
|||
<td>Срабатывают при вставке/копировании/удалении текста. В них можно отменить действие браузера, и тогда вставке/копирования/удаления не произойдёт.</td>
|
||||
<td>Вставляемое значение получить нельзя: на момент срабатывания события в элементе всё ещё *старое* значение, а новое недоступно.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
Ещё особенность: в IE8- события `change`, `propertychange`, `cut` и аналогичные не всплывают. То есть, обработчики нужно назначать на сам элемент, без делегирования.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue