Просмотр полной версии : изучаю dom
olga153b
20.09.2011, 15:52
html имеет 2 потомка head и body.
alert(document.body.parentNode) дает html.
почему alert(document.head.parentNode) не дает html.
А в каком браузере? В Chrome дает:alert( document.head.parentNode );
olga153b
20.09.2011, 16:32
в FF дает ошибка: document.head is undefined
olga153b
20.09.2011, 16:56
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>О лосях</title>
<script>
alert(document.body.firstChild)
</script>
</head>
<body>
Правда о лосях.
<ol>
<li>
Лось - животное хитрое
</li>
<li>
.. И коварное
</li>
</ol>
</body>
</html>
еще первый ребенок у body должен быть ol
ничего не дает
Это совсем другое. Просто у document нет свойства .head. Используй другой способ получить его:if( !document.head )
document.head = document.getElementsByTagName( "head" )[ 0 ]
alert( document.head.parentNode );
ничего не дает
Неправда! Дает ошибку. Используй дебаггер (например, firebug). Там ошибка, что body еще не существует.еще первый ребенок у body должен быть olНет, должен быть текстовый узел.
olga153b
20.09.2011, 17:08
а почему условие проверяется через if?, я видела (?: )
и второй вопрос не могу разобраться с this.
Написано, что это указатель и зависит от контекста.
Провожу аналогию: указатель, это на вокзале указывает выход в город,
на 5,6 путь, в камеры хранения ит.д.
Контекст это например коса у девочки, коса косит траву, коса в море,
это зависимо от контекста.
с чем это можно сравнить, чтобы понять смысл?
olga153b
20.09.2011, 17:10
да дает ошибку, хотела отредактировать у меня не получилось
с чем это можно сравнить, чтобы понять смысл?
ЭТО оно и в африке ЭТО.
ЭТО по-умолчанию - window, глобальный объект.
//говорит о контексте.
function a(){alert(this)}
a(); // window.
var myObj = {};
a.call( myObj )// сменили переменную this на этот пустой объект
// по умолчанию ?
a.call( null ); // window
a.call( undefined );
olga153b
20.09.2011, 17:18
а если я уберу текст "Правда о лосях", будет 1 ребенком ol?
большое Вам спасибо я добавлю Вам 1
нет, будет текст - перенос строки
olga153b
20.09.2011, 17:36
да дает ошибку ошибка: syntax error
olga153b
20.09.2011, 17:54
Неправда! Дает ошибку. Используй дебаггер (например, firebug). Там ошибка, что body еще не существует.Нет, должен быть текстовый узел.
а какой там текст? Перевод строки, возврат каретки.
еще мне не понятно почему Body еще не существует
а что нужно сделать, чтобы первым ребенком был ol?
и что ему надо чтобы Body существовало?
<body><ol>
тогда будет первым.
body будет существовать,если поместить скрипт ниже body :)
или вызывать функцию взаимодействия с dom по загрузке страницы
olga153b
21.09.2011, 16:42
document.body is null
file:///C:/Documents%20and%20Settings/SY/%D0%A0%D0%B0%D0%B1%D0%BE%D1%87%D0%B8%D0%B9%20%D1%8 1%D1%82%D0%BE%D0%BB/pervaya_rabota/poisk_dom/%D0%9A%D0%BE%D0%BF%D0%B8%D1%8F%20(2)%20los.html
Line 6
Firebug дает ошибку, но в чем ошибка, я в этом ничего не понимаю, где почитать подскажите плз. Еще я не понимаю, что означает [object Object]
olga153b
21.09.2011, 17:04
Да, ошибка убралась, когда перенесла скрипт ниже Body.
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>О лосях</title>
</head>
<body><ol>
<li>
Лось - животное хитрое
</li>
<li>
.. И коварное
</li>
</ol>
<script>
alert(document.body.firstChild)
</script>
</body>
</html>
когда запустила отсюда получилась ошибка
ошибка: syntax error
а с чем это связано?
olga153b
21.09.2011, 17:15
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>О лосях</title>
</head>
<script>
window.onload = alert(document.body.firstChild)
</script>
<body><ol>
<li>
Лось - животное хитрое
</li>
<li>
.. И коварное
</li>
</ol>
</body>
</html>
вызывать функцию взаимодействия с dom по загрузке страницы
я правильно поняла или нет?
__________________
<html>
<head>
<title>О лосях</title>
<script>
window.onload = function () {
alert(document.body.firstChild);
}
</script>
</head>
<body>
<ol>
<li>
Лось - животное хитрое
</li>
<li>
.. И коварное
</li>
</ol>
</body>
</html>
Верно, когда страница полностью загрузится сработает событие onLoad и вызовет функцию, в функции же происходит работа с DOM.
olga153b
21.09.2011, 19:28
спасибо, значит я сделала не правильно, уже исправила.
olga153b
21.09.2011, 19:41
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>О лосях</title>
</head>
<script>
window.onload = function () {
alert(document.body.firstChild);
alert(document.ol.firstChild);
}
</script>
<body><ol><li>
Лось - животное хитрое
</li>
<li>
.. И коварное
</li></ol></body>
</html>
скажите плз первый ребенок ol так не появляется, а должен появиться
li. что ему надо?
Недавно изучаю великий и могучий javascript, но, по-моему, для того чтобы работало надо найти элемент в дереве:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>О лосях</title>
<script>
window.onload = function () {
var ol = document.getElementById('id');
alert(document.body.firstChild);
alert(ol.firstChild);
}
</script>
</head>
<body><ol id='id'><li>
Лось - животное хитрое
</li>
<li>
.. И коварное
</li></ol>
</body>
</html>
И Ольга, заключайте код html в html теги, а не JS, а то так javascript не будет работать здесь.
olga153b
24.09.2011, 21:52
alert( document.head.parentNode );
да, в хроме дает HTML
olga153b
24.09.2011, 23:09
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>О лосях</title>
<script>
var newDiv = document.createElement('div')
newDiv.className = 'my-class'
newDiv.id = 'my-id'
newDiv.style.backgroundColor = 'red'
newDiv.innerHTML = 'Привет, мир!'
</script>
</head>
<body>
Правда о лосях.
<ol>
<li>
Лось - животное хитрое
</li>
<li>
.. И коварное
</li>
</ol>
</body>
</html>
хочу создать новый элемент, что ему надо чтоб создался DIV.
documen.body.appendChild(newDiv);
olga153b
25.09.2011, 00:17
documen.body.appendChild(newDiv);
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>О лосях</title>
</head>
<body>
Правда о лосях.
<ol>
<li>
Лось - животное хитрое
</li>
<li>
.. И коварное
</li>
</ol>
<script>
var newDiv = document.createElement('div')
newDiv.className = 'my-class'
newDiv.id = 'my-id'
newDiv.style.backgroundColor = 'red'
newDiv.innerHTML = 'Привет, мир!'
documen.body.appendChild(newDiv);
</script>
</body>
</html>
поставила, но наверное еще что-то надо, нигде не появилось "привет мир"
Строка N26 ошибка нужно писать document а у Вас documen.
Учитесь пользоваться отладчиками, в каждом браузере есть вызываются быстрой клавишей F12.
olga153b
25.09.2011, 11:24
Magneto,
спасибо большое, но 1 чего-то Вам не ставится, позже поставлю
vBulletin® v3.6.7, Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot