not javascript getelementbyid

not - html javascript getelementbyid



document.all vs. document.getElementById (7)

En realidad, document.all solo es mínimamente comparable con document.getElementById . No usarías uno en lugar del otro, no devolverían las mismas cosas.

Si intentas filtrar a través de las capacidades del navegador, puedes utilizarlas como en share como esta:

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]; }


Pero, funcionalmente, document.getElementsByTagName(''*'') es más equivalente a document.all .

Por ejemplo, si realmente usara document.all para examinar todos los elementos en una página, así:

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

en su lugar, usaría 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); }

¿Cuándo debería usar document.all vs. document.getElementById ?


Específicamente, document.all se introdujo para IE4 ANTES de que document.getElementById se haya introducido.

Entonces, la presencia de document.all significa que el código está diseñado para soportar IE4 , o está tratando de identificar el navegador como IE4 (aunque podría haber sido Opera), o la persona que escribió (o copió y pegó) el código wasn Estoy al tanto de lo último.

En el caso poco probable de que necesite soportar IE4, entonces necesita document.all (o una biblioteca que maneje estas antiguas especificaciones de IE).



document.all es muy antiguo, ya no tienes que volver a usarlo .

Para citar a Nicholas Zakas :

Por ejemplo, cuando DOM era joven, no todos los navegadores admitían getElementById (), por lo que había un montón de código que se veía así:

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 es una extensión de propiedad de Microsoft al estándar W3C.

getElementById() es estándar; úsalo.

Sin embargo, considere si usar una biblioteca js como jQuery sería útil. Por ejemplo, $("#id") es el equivalente de jQuery para getElementById() . Además, puede usar más que simples selectores de CSS3 .


document.querySelectorAll (y su variante document.querySelector() que devuelve el primer elemento encontrado) es mucho, mucho más potente. Tu puedes fácilmente:

  • obtener una colección completa con document.querySelectorAll("*") , emulando de manera efectiva la propiedad document.all no estándar;
  • use document.querySelector("#your-id") , emulando efectivamente la función document.getElementById() ;
  • use document.querySelectorAll(".your-class") , emulando efectivamente la función document.getElementsByClassName() ;
  • utilice document.querySelectorAll("form") lugar de document.forms , y document.querySelectorAll("a") lugar de document.links ;
  • y realice cualquier consulta de DOM mucho más compleja (utilizando cualquier selector de CSS disponible) que simplemente no pueda ser cubierto con otros documentos incorporados.

La API de consultas unificadas es el camino a seguir. Incluso si document.all estuviera en el estándar, es inconveniente.


document.all () es una forma no estándar de acceder a los elementos DOM. Ha quedado obsoleto desde algunos navegadores. Le da acceso a todos los elementos secundarios en su documento.

document.getElementById () es un estándar y totalmente compatible. Cada elemento tiene una identificación única en el documento.

Si usted tiene:

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

Utilizando

document.getElementById("testing");

Tendrán acceso a ese div específico.