PDA

Просмотр полной версии : Javascript! document.ids



dykzei
03.06.2005, 15:17
не работаетв IE,Opera такая штука:

...
<script>
document.ids.MYID.color="#FF0000";
</script>
</head>
<body>
<font id="MYID">WOOF</font>
...

что не так, подскажите?

Oscar
03.06.2005, 15:30
dykzei,

Во-первых, я бы использовал:
documtn.getElementById('MYID')

Но, думаю, проблема не в том.

В приведенном примере JS выполняется в head, то есть раньше, чем построено тело документа,
что означает, что элемент с id='MYID' ещё не известен.

Я бы советовал сделать примерно так:



...
<script>
function setColor() {
//document.ids.MYID.color="#FF0000";
document.getElementById('MYID').color="#FF0000";
}
</script>
</head>
<body onLoad="setColor()">
<font id="MYID">WOOF</font>
...


Старшие IE должны понимать функцию getElementById, по поводу Opera - не знаю.

dykzei
03.06.2005, 17:01
ок..а document.ids(а также tags, classes, etc) это из какой серии? ведь иногда хочется и класс переколбасить...

вот так все работает:


<html>
<head>
</head>
<body>
<font ID="MYID">WOOF</font>
</body>
</html>

<SCRIPT lang=JavaScript>
function sC(){
//document.ids.MYID.color="00FF00";
document.getElementById("MYID").style.color="00FF00";
}

sC();
</SCRIPT>

а при втором варианте, опера на консоль ошибок JS выбрасывает вот это... IE молчит, но не работает тоже


Inline script thread
Error:
name: TypeError
message: Statement on line 3: Could not convert undefined or null to object
Backtrace:
Line 3 of inline#1 script in file://localhost/D:/game.htm
document.ids.MYID.color = "00FF00";
Line 7 of inline#1 script in file://localhost/D:/game.htm
sC();

dykzei
03.06.2005, 17:17
эх...нашел обьяснения, вот http://www.stopbadtherapy.com/standards.shtml

dykzei
03.06.2005, 17:28
вобщем выводы - качаем DOM 1, 2 и т.д... и не используем DOM 0 :-/