2011-07-12 6 views
0

私はJavascriptを少し新しくしました。私は私の大きなページに必要なものをテストするためにこのダミースクリプトを書いています。私は、最も簡単に、hrefの値を取得し、hrefの値を変更してから再度見たいと思います。簡単にするために、hrefの値を変更して属性値を2回呼び出すだけの部分を削除しました。しかし、2回目に属性値にアクセスすると、以下に投稿したエラーが表示されます。私はFirebugから1つと、Dragonflyから1つ(Operaから)の2つのエラーログを投稿しています。document.getElementById throw TypeError

ご迷惑をおかけして申し訳ございません。ありがとう。

私がスクリプトでもう1つ問題があるのは、ロードが完了しないことです。私はいつも(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")がnullである

2.トンボ - >
キャッチされない例外:例外TypeErrorは:「のdocument.getElementById(変換できません。 // localhostの/ D:/シカゴ%の20pics /ウェブサイト%の20pics /ウェブサイト%20root/trial5 "1")」
ファイルの行8で投げ

エラー、hrefvalueの列0を()オブジェクトへ。 htm:
var newnew21 = document.getElementById( "1")。childNodes [0] .getAttribute( "href");すべての魚のために再び hrefvalue()

そして感​​謝:D

答えて

3
  1. IDは数字で始めることはできません(HTMLで(イベント)に行1、列0から呼び出さ
    4)。そのようなIDをサポートするブラウザには賭けてはいけません。
  2. document.writeは、が開かれていないドキュメントをゴミ箱に入れます。ブラウザが</html>を解析すると、ドキュメントが閉じられます。この関数はonclickを実行しているため、書き込みを試みる前に閉じられます。 JSでHTMLを変更するにはDOM methodsを使用してください。
+0

なぜ最初の機能は機能しますか?

document.write(thisthang)の出力は得られますが、newnew21の出力は出力されません。 – ajrocker

+0

あなたが 'document.write'を呼び出す前に* * * *最初に*読むべき要素を破壊していないので、 – Quentin

+0

*" IDは数字で始めることはできません "* FWIW、 [HTML4.01で](http://www.w3.org/TR/html401/types.html#type-name)、それは本当です[CSSで]真実です(http://www.w3.org /TR/CSS21/syndata.html#value-def-identifier)、[HTML5ではこれが可能です](http://www.w3.org/TR/html5/elements.html#the-id-attribute)。私は 'id'、mindとして' 1'を使用しません。 (引用されたページには全くdoctypeが指定されていませんが、ちょっと) –

関連する問題