2012-01-11 17 views

Respuesta

35

Demostración: http://jsfiddle.net/ThinkingStiff/y9K9Y/

Si el <div> que está buscando tiene una clase, puede utilizar getElementsByClassName():

document.getElementById('parentDiv').getElementsByClassName('childDiv')[0]; 

Si no tiene una clase que puede utilizar getElementsByTagName() :

document.getElementById('parentDiv').getElementsByTagName('div')[0]; 

Y si tiene un id puede, por supuesto, sólo tiene que utilizar getElementById() para encontrarlo sin importar dónde se encuentra en el DOM:

document.getElementById('childDiv'); 
+0

No extienda 'Element.prototype' de basura. Hay un método 'getElementsByClassName' perfectamente bueno que hace lo que quiere pero es mejor. – Raynos

+0

@Raynos, pensé que solo era el nivel del documento. Editado – ThinkingStiff

+0

document.getElementById ('parentDiv') .querySelector ('div') – fallinov

4
//For immediate children 

    var children = document.getElementById('id').childNodes; 

    //or for all descendants 

    var children = document.getElementById('id').getElementsByTagName('*'); 
3
var div = ... 
var divChildren = div.getElementsByTagName("div"); 
var divYouWant = [].filter.call(divChildren, function (el) { 
    return matchesSomeCondition(el); 
}); 

Idealmente, me gustaría algo así como getElemenById

Y puede usar getElementById simplemente haga document.getElementById(id) y dado que los identificadores son únicos que encontrarán ese único elemento div que desea.

También puede utilizar elem.getElementsByClassName para seleccionar un descendiente de elem por clase

Cuestiones relacionadas