powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / DOM. почему после последнего child "элемента" не может быть текста ?
20 сообщений из 20, страница 1 из 1
DOM. почему после последнего child "элемента" не может быть текста ?
    #39358480
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Читаю учебник. там такой вопрос
http://learn.javascript.ru/traversing-dom Если elem – это произвольный узел DOM…

Верно ли, что elem.lastChild.nextSibling всегда null?

Верно ли, что elem.children[0].previousSibling всегда null ?

и такой ответ:

http://learn.javascript.ru/traversing-dom Да, верно, с оговоркой. Элемент elem.lastChild последний, у него нет правого соседа.

Оговорка: elem.lastChild.nextSibling выдаст ошибку если elem не имеет детей.

Нет, неверно, это может быть текстовый узел. Значением elem.children[0] является первый узел-элемент, перед ним может быть текст.

Аналогично предыдущему случаю, если у elem нет детей-элементов – будет ошибка.

Я чего-то не понял чем отличаются обе эти ситуации.

http://learn.javascript.ru/traversing-dom Свойства firstChild и lastChild обеспечивают быстрый доступ к первому и последнему элементу.

почему после последнего элемента не может быть текста в таком случае?
...
Рейтинг: 0 / 0
DOM. почему после последнего child "элемента" не может быть текста ?
    #39358559
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerпочему после последнего элемента не может быть текста в таком случае?
В каком именно случае?
Случаем называют некий пример разметки. Ты не привел примера разметки...
...
Рейтинг: 0 / 0
DOM. почему после последнего child "элемента" не может быть текста ?
    #39358568
mage.lan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerпочему после последнего элемента не может быть текста в таком случае?
Считайте, что текст в DOM - такой же элемент, просто без имени тега, я думаю автор вашего примера говорит о том, что если взяли последний - то после него ничего нет. (Сорри за каламбур)
...
Рейтинг: 0 / 0
DOM. почему после последнего child "элемента" не может быть текста ?
    #39358571
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questioner , вот некая иллюстрация некой ситуации

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />
<!--
<script src='http://code.jquery.com/jquery-latest.js'></script>
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
-->
<style type='text/css'>
</style>
<script type='text/javascript'>
</script>
</head>
<body>
<ul>
	<li>Item 0</li>
	<li>Item 1</li>
	<li>Item 2</li>
</ul>
<script type='text/javascript'>
var o=document.querySelector('ul');
alert(o.firstChild.previousSibling);
alert(o.children[0].previousSibling);
alert(o.lastChild.nextSibling);
alert(o.children[o.children.length-1].previousSibling);
</script>
</body>
</html>


Т.е. есть разница с чем работать, с элементом массива детей или со свойствами "первый" и "последний" ребенок...
...
Рейтинг: 0 / 0
DOM. почему после последнего child "элемента" не может быть текста ?
    #39358582
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsaquestionerпочему после последнего элемента не может быть текста в таком случае?
В каком именно случае?
Случаем называют некий пример разметки. Ты не привел примера разметки...
я ж привел ссылку. Разметка может быть любой.
...
Рейтинг: 0 / 0
DOM. почему после последнего child "элемента" не может быть текста ?
    #39358585
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mage.lanquestionerпочему после последнего элемента не может быть текста в таком случае?
Считайте, что текст в DOM - такой же элемент, просто без имени тега, я думаю автор вашего примера говорит о том, что если взяли последний - то после него ничего нет. (Сорри за каламбур)

а почему перед первым ещё что-то может быть?
...
Рейтинг: 0 / 0
DOM. почему после последнего child "элемента" не может быть текста ?
    #39358589
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsa questioner , вот некая иллюстрация некой ситуации

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />
<!--
<script src='http://code.jquery.com/jquery-latest.js'></script>
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
-->
<style type='text/css'>
</style>
<script type='text/javascript'>
</script>
</head>
<body>
<ul>
	<li>Item 0</li>
	<li>Item 1</li>
	<li>Item 2</li>
</ul>
<script type='text/javascript'>
var o=document.querySelector('ul');
alert(o.firstChild.previousSibling);
alert(o.children[0].previousSibling);
alert(o.lastChild.nextSibling);
alert(o.children[o.children.length-1].previousSibling);
</script>
</body>
</html>


Т.е. есть разница с чем работать, с элементом массива детей или со свойствами "первый" и "последний" ребенок...
...
Рейтинг: 0 / 0
DOM. почему после последнего child "элемента" не может быть текста ?
    #39358590
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsa,

может всё-таки в последнем алерте

Код: javascript
1.
alert(o.children[o.children.length-1].nextSibling);
...
Рейтинг: 0 / 0
DOM. почему после последнего child "элемента" не может быть текста ?
    #39358595
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerможет всё-таки в последнем алерте
И что там?

Последнй элемент в массиве детей. После него есть текст...
...
Рейтинг: 0 / 0
DOM. почему после последнего child "элемента" не может быть текста ?
    #39358693
mage.lan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questioner,

тут ответ на ваш вопрос

Как обычно - рукожопые программисты, пишушие браузеры.
...
Рейтинг: 0 / 0
DOM. почему после последнего child "элемента" не может быть текста ?
    #39358754
Alexander A. Sak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mage.lanquestioner,

тут ответ на ваш вопрос

Как обычно - рукожопые программисты, пишушие браузеры.

В чем рукожопость можете объяснить?
Я вот вижу кривость перевода, в котором смешивают понятия элементов и узлов. Ну так не не надо читать переводов.
...
Рейтинг: 0 / 0
DOM. почему после последнего child "элемента" не может быть текста ?
    #39358764
mage.lan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander A. SakВ чем рукожопость можете объяснить?
В пробеле, который есть перед первым элементом. Вообще DOM и его методы - одно сплошное безобразие. Как будто женщина придумала.
...
Рейтинг: 0 / 0
DOM. почему после последнего child "элемента" не может быть текста ?
    #39358947
Alexander A. Sak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mage.lanAlexander A. SakВ чем рукожопость можете объяснить?
В пробеле, который есть перед первым элементом. Вообще DOM и его методы - одно сплошное безобразие. Как будто женщина придумала.

Не понял. Авторы браузера рукожопы, потому что автор страницы поставил пробел перед первым элементом?
...
Рейтинг: 0 / 0
DOM. почему после последнего child "элемента" не может быть текста ?
    #39359067
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mage.lanрукожопые программисты, пишушие браузеры.
mage.lanВообще DOM и его методы - одно сплошное безобразие. Как будто женщина придумала.
А я Д`Артаньян! (с)

Т.е. ничего нового...
...
Рейтинг: 0 / 0
DOM. почему после последнего child "элемента" не может быть текста ?
    #39359172
mage.lan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander A. SakНе понял. Авторы браузера рукожопы, потому что автор страницы поставил пробел перед первым элементом?
Браузер вставляет пробел перед первым элементом, а не автор.

krvsaА я Д`Артаньян! (с)

Т.е. ничего нового...
Плохое утро?
Я и сам рукожоплю иногда. Все прогеры это делают, просто одни считают себя богами, а другие просто горшки лепят.
...
Рейтинг: 0 / 0
DOM. почему после последнего child "элемента" не может быть текста ?
    #39359205
Alexander A. Sak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mage.lanAlexander A. SakНе понял. Авторы браузера рукожопы, потому что автор страницы поставил пробел перед первым элементом?
Браузер вставляет пробел перед первым элементом, а не автор.


Можете привести пример? В моей картине мира так:

С такой разметкой перед первым <li> есть текстовый узел. То, что мы стали называть "пробелом перед первым элементом".
Код: html
1.
2.
3.
4.
<ul>
<li>First</li>
<li>Second</li>
</li>



С такой разметкой перед первым <li> текстового узла нет.
Код: html
1.
2.
3.
<ul><li>First</li>
<li>Second</li>
</li>



По-вашему, мы должны во втором варианте обнаружить пробел (текстовый узел) перед первым <li>?
...
Рейтинг: 0 / 0
DOM. почему после последнего child "элемента" не может быть текста ?
    #39359258
mage.lan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander A. Sak,

в моей картине мира, в разметке
Код: html
1.
2.
3.
<ul>
<li>
...


нет пробелов между тегами ul и li
...
Рейтинг: 0 / 0
DOM. почему после последнего child "элемента" не может быть текста ?
    #39359336
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mage.lanв моей картине мира, в разметке
Код: html
1.
2.
3.
<ul>
<li>
...


нет пробелов между тегами ul и li
А он там есть!
Код: html
1.
2.
3.
4.
5.
6.
7.
<ul>
<li><li>
</ul>
<script type='text/javascript'>
var o=document.getElementsByTagName('ul');
alert(o[0].children[0].previousSibling);
</script>
...
Рейтинг: 0 / 0
DOM. почему после последнего child "элемента" не может быть текста ?
    #39359344
mage.lan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa,

Алэ?
Никто не читает что-ли...
Именно поэтому я и сказал рукожопы.

При обработке XML всем парсерам надо умышленно говорить preserve space, если нужно, чтобы командные пробелы попадали в обработку.
ДОМ пошел своим "кривеньким" путем. Отношение к пробелам у функций ДОМа - отвратительное, то они их видят, то тримят.
...
Рейтинг: 0 / 0
DOM. почему после последнего child "элемента" не может быть текста ?
    #39359357
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mage.lanИменно поэтому я и сказал рукожопы.
Это только в твоей голове...
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / DOM. почему после последнего child "элемента" не может быть текста ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]