Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 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: 582; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.009 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию