プロが教える店舗&オフィスのセキュリティ対策術

久々にJavaScriptを組みました。
以下のソースコードなんですが、ボタンクリック時にalertで「1」
が表示されるはずだと思っているのですが、「0」が返ってきます。
何かおかしなところはありますでしょうか?宜しくお願いします。

<html>
<head>
<script language="javascript">
function test(){
var obj = document.getElementsByName("name1");
alert(obj.length);
}
</script>
</head>
<body>
<div name="name1"></div>
<button onclick="test();">TEST</button>
</body>
</html>

教えて!goo グレード

A 回答 (1件)

非常に珍しいIEの正しい挙動だと思う。


(Minefield,Opera,Safariは1を返す)

ずーっとあるもんだと思ってたが,
【div要素はname属性を持たない!】
http://www.w3.org/TR/REC-html40/index/attributes …

BUTTON, TEXTAREA,APPLET,SELECT,FORM,FRAME,IFRAME,IMG,A,INPUT,OBJECT,MAP,PARAM,META
しか持たない。

もしname属性がdiv要素ではなくinput要素に付いていたら,
IEは1を返しました。

#つーことで,id属性を使いましょう。getElementsByIdを使えばおそらく似たようなことは出来るはずなので
    • good
    • 2
この回答へのお礼

himajin100000様、ご回答いただき有難うございます。

えー、ちょっとびっくりしております。なるほどなぁ・・・。
たまたまなんでしょうけど、今まで、Inputタグぐらいでしか
getElementsByNameを使ったことがなく、DIVやSPANではgetElementByIdばかり使っていました。それで今更ながらに気がついたようです。

ホント、珍しい現象ですね。でも、正しい動作か・・・。
どうもありがとうございました。

お礼日時:2007/12/14 21:50

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

教えて!goo グレード

このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング