Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Задание. Напишите самый короткий код для проверки, пуст ли элемент elem
Напишите самый короткий код для проверки, пуст ли элемент elem. «Пустой» — значит нет дочерних узлов, даже текстовых.
Решение Вначале нерабочие способы, которые могут прийти на ум: if (!elem) {.. } Это не работает, так как elem всегда есть, и является объектом. Так что проверка if (elem) всегда верна, вне зависимости от того, есть ли у elem потомки. if (!elem.childNodes) {... } Тоже не работает, так как псевдо-массив childNodes всегда существует. Он может быть пуст или непуст, но он всегда является объектом, так что проверка if (elem.childNodes) всегда верна. Несколько рабочих способов:
if (!elem.childNodes.length) {... }
if (!elem.firstChild) {... }
if (!elem.lastChild) {... }
Вопрос Если elem — это произвольный узел DOM… Верно ли, что elem.lastChild.nextSibling всегда null? Верно ли, что elem.children[0].previousSibling всегда null?
Свойства узлов: тип, тег, содержимое и другие
три основных свойства DOM-узлов: тип, тег и содержимое Тип: nodeType С тремя типами мы уже встречались. Это 1) элемент, 2) текстовый узел и 3) комментарий. На самом деле типов узлов гораздо больше. Строго говоря, их 12, и они описаны в спецификации DOM Уровень 1: interface Node { // NodeType const unsigned short ELEMENT_NODE = 1; const unsigned short ATTRIBUTE_NODE = 2; const unsigned short TEXT_NODE = 3; const unsigned short CDATA_SECTION_NODE = 4; const unsigned short ENTITY_REFERENCE_NODE = 5; const unsigned short ENTITY_NODE = 6; const unsigned short PROCESSING_INSTRUCTION_NODE = 7; const unsigned short COMMENT_NODE = 8; const unsigned short DOCUMENT_NODE = 9; const unsigned short DOCUMENT_TYPE_NODE = 10; const unsigned short DOCUMENT_FRAGMENT_NODE = 11; const unsigned short NOTATION_NODE = 12; ... } Нам важны номера основных типов. Самые важные — этоELEMENT_NODEпод номером 1 иTEXT_NODEпод номером 3. Date: 2015-07-17; view: 621; Нарушение авторских прав |