document.getElementById выбрасывает TypeError - PullRequest
0 голосов
/ 12 июля 2011

Я немного новичок в Javascript.Я пишу этот фиктивный скрипт, чтобы проверить, что мне нужно для моей большей страницы.В самом простом случае я хочу получить значение href, а затем изменить значение href, а затем увидеть его снова.Для простоты, сейчас я удалил часть для изменения значения href и просто вызова значения атрибута дважды.Но во второй раз, когда я получаю доступ к значению атрибута, отображается ошибка, которую я разместил ниже.Я публикую два журнала ошибок, один из Firebug и один из Dragonfly (из Opera).

Любая помощь будет принята с благодарностью.Спасибо.

Еще одна проблема, с которой я столкнулся со сценарием, заключается в том, что он никогда не завершает загрузку.Я всегда вижу (в Firefox 3.6.8) маленький значок загрузки, вращающийся в заголовке вкладки.Меня это не сильно беспокоит, но если у кого-то есть идея, пожалуйста, скажите мне.

<!-- This file is used to set attribute value for href. -->
<html>
<head>

<script type="text/javascript">
   function hrefvalue()
{
var thisthang = document.getElementById("1").childNodes[0].getAttribute("href");
document.write(thisthang);
document.write("\n");

var newnew21 = document.getElementById("1").childNodes[0].getAttribute("href");
document.write(newnew21);
}
</script>

</head>

<body>

<div id="1"><a href="focusdude.htm">click here</a></div>
<button type="button" onclick="hrefvalue()">Click me instead</button>

</body>
</html>

Журналы ошибок:
1. Firebug -> document.getElementById ("1") равен нулю

2. Dragonfly ->
Неопределенное исключение: Ошибка типа: Невозможно преобразовать document.getElementById ("1") в объект

Ошибка, выданная в строке 8, столбце 0 в hrefvalue() в
file: // localhost / D: /Chicago%20pics/website%20pics/website%20root/trial5.htm:
var newnew21 = document.getElementById ("1"). childNodes [0].getAttribute ( "HREF");
вызывается из строки 1, столбца 0 в (событие): hrefvalue ()

И еще раз спасибо за всю рыбу: D

1 Ответ

3 голосов
/ 12 июля 2011
  1. Идентификатор не может начинаться с цифры (в HTML 4).Не стоит делать ставку на браузеры, поддерживающие такие идентификаторы.
  2. document.write приведет к удалению документа, который не открыт .Когда браузер анализирует </html>, документ закрывается.Поскольку функция запускается onclick, она будет закрыта, прежде чем вы попытаетесь написать.Используйте методы DOM для изменения HTML с помощью JS.
...