Jump to content
  • 0

Объектная модель DOM


people2010
 Share

Question

Изучаю DOM Явыскрипт вот оппробовал получить доступ через структуру которую имеет язык Джаваскрпипт чего-то ИЕ останавливается на 4 строке и говорит что эт оесть нуль и не является объектом. Я хочу изменить надпись на кнопке под номером №3.

<html><head>
<title>Тренировочный документ</title>
<script type='text/javascript'>
window.document.forms[0].elements[2].value = 'Privet';
</script>
</head>
<body>
<form>
<input type="button" value='Щёлкни меня' onClick="alert('1')">
<input type="button" value='Щёлкни меня' onClick="alert('2')">
<input type="button" value='Щёлкни меня' onClick="alert('3')">
<input type="button" value='Щёлкни меня' onClick="alert('4')">
<input type="button" value='Щёлкни меня' onClick="alert('5')">
</form>
</body>
</html>

Не работает.

Edited by people2010
Link to comment
Share on other sites

20 answers to this question

Recommended Posts

  • 0
Изучаю DOM Явыскрипт вот оппробовал получить доступ через структуру которую имеет язык Джаваскрпипт чего-то ИЕ останавливается на 4 строке и говорит что эт оесть нуль и не является объектом. Я хочу изменить надпись на кнопке под номером №3.

Не работает.

И не должно. Вы пытаетесь красить стены дома, который еще не построен. JS нужно запускать только тогда, когда точно известно, что данный объект уже присутствует в DOM-дереве.

Link to comment
Share on other sites

  • 0

Либо пишите скрипт в конце страницы (как можно ближе к тегу </body>), либо запускайте выполнение скрипта при наступлении события onload у элемента window. Слово window не обязательно, т.е. можно написать вот так: document.forms[0].elements[2].value = 'Privet';

Я вообще не знаю какой у вас доктайп, но писать onClick не правильно, все буквы должны быть в нижнем регистре - onclick.

people2010, скажите пожалуйста название книги, по которой вы учитесь и год выпуска.

Link to comment
Share on other sites

  • 0

document.onload работать не будет

Практические Занятия по JavaScript

Д.В. Николенко 2000

Блин это каменный век! С 2000 года все очень сильно поменялось. Найдите себе более новую книгу или учитесь по этим урокам - http://javascript.ru/doctree

Иначе потом переучиваться придется.

Link to comment
Share on other sites

  • 0

Написал через метод онлоад, не работает.

<html><head>
<title>Тренировочный документ</title>
<script type='text/javascript'>
document.onload = tet;
function tet(){
window.document.onload.forms[0].elements[2].value = 'Privet';
}


</script>
</head>

<form>
<input type="button" value='Щёлкни меня' onClick="alert('1')">
<input type="button" value='Щёлкни меня' onClick="alert('2')">
<input type="button" value='Щёлкни меня' onClick="location.href = 'http://yahoo.com'">
<input type="button" value='Щёлкни меня' onClick="alert('4')">
<input type="button" value='Щёлкни меня' onClick="alert('5')">
</form>



</html>

Link to comment
Share on other sites

  • 0

А как тогда,только скрипт после кода хтмл писать и больше никак?

Нельзя ли в тегах хид поместить скрипт и туда написать чтоб при загрузке страницы он сработал и изменилось свойство 3-го инпута кнопки?

Edited by people2010
Link to comment
Share on other sites

  • 0
<html><head>
<title>Тренировочный документ</title>
<script type='text/javascript'>
function test() {
document.forms[0].elements[2].value = 'Privet';
}

window.onload = function() {
test();
}
</script>
</head>

<form>
<input type="button" value='Щёлкни меня' onClick="alert('1')">
<input type="button" value='Щёлкни меня' onClick="alert('2')">
<input type="button" value='Щёлкни меня' onClick="location.href = 'http://yahoo.com'">
<input type="button" value='Щёлкни меня' onClick="alert('4')">
<input type="button" value='Щёлкни меня' onClick="alert('5')">
</form>



</html>

Link to comment
Share on other sites

  • 0

Спс. Вот это ясно что создание функции

 function test() {
document.forms[0].elements[2].value = 'Pri';
}

А вот это. Методу onload класса window присваивается функция без имени в которой вызывается функция тест?

 window.onload = function() {
test();
}

Edited by people2010
Link to comment
Share on other sites

  • 0

Да. Функция без имени называется анонимная функция. Делается это для того, чтобы в одно событие onload можно было напихать вызов сразу нескольких функций.

Так только одна:

window.onload = test;

Так несколько:

window.onload = function() {
test();
test2();
mySuperFunction();
}

Link to comment
Share on other sites

  • 0

Заметил что некоторые в документах используют стандарт, наверное нужно будет пробовать переходить на него. Я тут хотел спросить, в стандарте пишут такое:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"  
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

Можно ли писать просто так:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"  >

Если так нельзя тогда объясните что означает прописнаие вот такого:

  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

и ещё вот такого:

<html xmlns="http://www.w3.org/1999/xhtml">

Обязательно ли оно должно быть прописанно?

Link to comment
Share on other sites

  • 0

1)Просто я слышал что объекты:window,document,Array и др.

называю объектами. Хорошо, если они все объекты, тогда какого класса,ведь объекты это не то же саоме что классы, а это экземпляры класса?

2)Не работает метод close() в Джавскрипте именно в браузерах Мозила и Гуглхром, что можно

использовать другое в таком случаи?

<html><head>
<title>Тренировочный документ</title>
<script type='text/javascript'>
function closes(){
close();
}

</script>
</head>
<body>
<form>
<input type="button" value='Щёлкни меня' onClick="alert('Privet')">
<input type="button" value='Hello' onClick="closes()">

</form>

</body>

</html>

3)Вот попробовал, не срабатывает в гуглхроме,в других браузерах нормально,не выводит текст в гуглхроме, скажите что здесь не так?

<html><head>
<title>Тренировочный документ</title>
<script type='text/javascript'>

function openas() {
mywindow = open('','newokno','width=500,height=400,status=1,menubar=1');
//Открываем документ
mywindow.document.open();
//Создаём документ
mywindow.document.write('<html><head><title>Создаём хтмл-документ');
mywindow.document.write('</title></head><body>');
mywindow.document.write('<center><font size=+3>');
mywindow.document.write('Этот HTML-документ создан при помощи JavaSript');
mywindow.document.write('</font></center>');
mywindow.document.write('</body></html>');

//Закрываем документ но не окно
mywindow.document.close();
}

</script>
</head>
<body>
<form>
<input type="button" value='Жми сюда' onClick="openas()">
</form>

</body>

</html>

Edited by people2010
Link to comment
Share on other sites

  • 0

НЕ работает код в гуглхроме, как сделать работоспособным в нём? Или сожет использовать что-то другое в обход этой функции чтоб работало везде, если да, то что использовать и как его использовать? Заранее благодарю.

Edited by people2010
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy