質問

きを起用すべき document.alldocument.getElementById?

役に立ちましたか?

解決

document.allはW3C標準にMicrosoft独自の拡張機能です。

getElementById()は標準である - それを使用する

便利になるだろう jQueryののようなJSライブラリを使用している場合しかし、検討してください。例えば、$("#id")getElementById()のためのjQueryのと等価です。プラス、あなただけのCSS3 のセレクタより以上を使用することができます。

他のヒント

document.all非常に 古い場 なので、使う.

引用 ニコラスZakas:

例えば、DOMしたので、 ないすべてのブラウザ対応 getElementById()などがありました 多くのコードにようこ:

if(document.getElementById){  //DOM
    element = document.getElementById(id);
} else if (document.all) {  //IE
    element = document.all[id];
} else if (document.layers){  //Netscape < 6
    element = document.layers[id];
}

実際、 document.all に匹敵す document.getElementById.など使わないことでしょう一つのその他のかを返し同じです。

場合のためのフィルターを通してブラウザの機能を使用できるとして、 マルセル-Korpelの回答 このように:

if(document.getElementById){  //DOM
    element = document.getElementById(id);
} else if (document.all) {    //IE
    element = document.all[id];
} else if (document.layers){  //Netscape < 6
    element = document.layers[id];
}


でも、機能 document.getElementsByTagName('*') は相当 document.all.

例えば、だんに使用 document.all 検討すべての要素がページのようになります:

var j = document.all.length;
for(var i = 0; i < j; i++){
   alert("Page element["+i+"] has tagName:"+document.all(i).tagName);
}

ことはできませ document.getElementsByTagName('*') 代わり:

var k = document.getElementsByTagName("*");
var j = k.length; 
for (var i = 0; i < j; i++){
    alert("Page element["+i+"] has tagName:"+k[i].tagName); 
}

document.allの()のDOM要素にアクセスするための非標準的な方法です。これは、いくつかのブラウザから廃止されています。それはあなたのドキュメント上のすべてのサブ要素にアクセスできるようになります。

のdocument.getElementById()の標準と完全に支持されています。各要素は、文書上で一意のIDを持っています。

あなたがお持ちの場合:

<div id="testing"></div>

使用

document.getElementById("testing"); 

その特定のdivにアクセスする必要があります。

document.querySelectorAll (およびその document.querySelector() 変異型を返すにはこれらの要素がられたのがきっかけとなっています。す:

  • 車全体のコレクションの document.querySelectorAll("*"), を効果的に模倣した非標準 document.all
  • 使用 document.querySelector("#your-id"), を効果的に模倣し document.getElementById() 機能
  • 使用 document.querySelectorAll(".your-class"), を効果的に模倣し document.getElementsByClassName() 機能
  • 使用 document.querySelectorAll("form") の代わりに document.forms, は、 document.querySelectorAll("a") の代わりに document.links;
  • といずれかにより複雑なDOMタを利用可能なCSSセレクター)がカバーできないその他の文書builtins.

統一タのAPIにかかるものと思われます。場合でも document.all の基準をかけて食べるという習慣があり不便です。

具体的には、 document.all 導入のためのIE4前 document.getElementById が導入されていた。

その存在 document.all このコードが対象 支援IE4, やはてブラウザの識別としてIE4ものになりますので注意してくださいオペラ)を書いた人(又はコピーや貼り付け)をコードなの。

の可能性は低いと考える場をサポートする必要があるIE4、その後、必要はありません。 document.all (または図書館を取り扱うこれらの古代のIE仕様).

による MicrosoftのアーカイブInternet Explorer Devセンター, document.all で推奨されていませんでIE11びす。

document.allは今(いつからかわからない)Chromeで動作しますが、私は過去20年間、それを逃してきた....不格好document.getElementByIdより簡単に短いメソッド名。わからないことは、Firefoxで動作するかどうか、それらの人は、常に新しい基準を作成する代わりに、既存のWebを受け入れ、既存のWebと互換性を持つようにする任意の欲求を持っていなかった。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top