2010-03-18 4 views
0

J'ai un élément DOM en mémoire qui doit encore être injecté dans la page DOM. Je veux rechercher un élément par id dans cet élément DOM mais document.getElementById ne fonctionnera pas car l'élément n'est pas encore dans la page DOM.Recherche d'un élément DOM par identifiant dans un DIV non injecté dans DOM

Des idées sur comment faire cela?

P.S.

  • Je sais une approche consiste à utiliser element.querySelector() mais étant donné que le soutien ne marche pas IE7 , je peux pas.
  • Ne pas utiliser Jquery
+0

L'élément DOM a-t-il été créé à partir du script? Ou tiré d'une source externe? Avez-vous déjà essayé de rechercher la variable qui contient l'élément DOM, comme si var est défini sur 'myDOM' avez-vous essayé' myDOM.getElementById ("someID") '? – Anthony

+0

Essentiellement, vous voulez savoir comment traverser XML à partir d'une variable js? – Anthony

Répondre

0

Il diffère si le navigateur est IE ou non IE. Dans les deux cas, vous devez utiliser XPath. Pour Firefox et d'autres navigateurs compatibles, vous devez utiliser evaluate et la requête Xpath, avec IE, vous utilisez selectNodes. ils sont tellement ici côte à côte:

//Say you want an element with an id of "foo": 
    var xpathQ = "//[@id='foo']"; // This is your query 

    var myXML = someXMLsource; // Get your XML however you are getting it 

//Assuming non-IE 

var fooNode = myXML.evaluate(xpathQ, myXML, null, XPathResult.ANY_TYPE, null); 

//Assuming IE 

var fooNode = myXML.selectNodes(xpathQ); 

Et puis faire ce que vous devez faire avec l'élément. Je suis un peu gêné que IE rende cette coupe plus nette, mais chaque chien a son jour.

0

Si vous utilisez jQuery, vous pouvez écrire $('#someId', divElement).

Questions connexes