getElements ByName
2197 ワード
(zt)http://baike.baidu.com/view/1743588.htm
getElements ByName()メソッドは、指定された名前を持つオブジェクトのセットを返すことができる。
文法document.getElementsByNameは、この方法はgetElementById()方法と似ているが、id属性ではなく、要素のname属性を問い合わせる。また、一つのドキュメントのname属性は、一つの要素ではなく、一つのフォームの単一選択ボタンのようなユニークではないかもしれないので、全てのgetElements ByName()メソッドは要素の配列を返します。一つの文書の中に二つ以上のラベルNAMEが同じであれば、getElementsByName()はこれらの要素から一つの配列を構成することができる。例えば二つのDIV:
getElements ByName()メソッドは、指定された名前を持つオブジェクトのセットを返すことができる。
文法document.getElementsByNameは、この方法はgetElementById()方法と似ているが、id属性ではなく、要素のname属性を問い合わせる。また、一つのドキュメントのname属性は、一つの要素ではなく、一つのフォームの単一選択ボタンのようなユニークではないかもしれないので、全てのgetElements ByName()メソッドは要素の配列を返します。一つの文書の中に二つ以上のラベルNAMEが同じであれば、getElementsByName()はこれらの要素から一つの配列を構成することができる。例えば二つのDIV:
では、getElementsByName("docname")を使ってこの二つのDIVを取得して、getElements[NantydotEdme]を使って、一つ目にアクセスすることができます。2番目のDIVにアクセスします。標準DOMをまとめて、ある特定の要素にアクセスして、できるだけ標準のgetElementById()を使って、ラベルにアクセスするための標準のgetElementByTagName()を使ってください。ただし、getElementsByNameはサポートされていません。だから、getElementsByByNameは使用しないようにします。無欠ではないです。彼らは自分の便利なところがあります。それを使わずにサイトを見ているユーザーがどのブラウザを使うかは自分で決めました。getElements ByNameをIEとfirefoxに適応させる方法:
getElementsByName:function (name) {
var returns = document.getElementsByName(name);
if(returns.length > 0) return returns;
returns = new Array();
var e = document.getElementsByTagName('td');
for(i = 0; i < e.length; i++) {
if(e[i].getAttribute("name") == name) {
returns[returns.length] = e[i];
}
}
return returns;
}
実例<html>
<head>
<script type="text/javascript">
function getElements()
{
var x=document.getElementsByName("myInput");
alert(x.length);
}
</script>
</head>
<body>
<input name="myInput" type="text" size="20" /><br />
<input name="myInput" type="text" size="20" /><br />
<input name="myInput" type="text" size="20" /><br />
<br />
<input type="button" onclick="getElements()"
value="How many elements named 'myInput'?" />
</body>
</html>
上記は静止画ページに限られていますが、javascriptを用いて動的にページを生成すると、解決方法はまだ不明です。