2010-07-13 7 views
0

J'ai une page Web HTML pleine de balises div et span identifiées avec la classe qui ont beaucoup de données dont j'ai besoin dans un autre format. Je me demandais quel serait le meilleur moyen de le faire avec javascript.Comment obtenir des données HTML avec javascript

Merci pour votre aide.

+0

Besoin de plus d'informations. Que voulez-vous faire avec les données? À quoi cela ressemble-t-il? Avez-vous des exemples? – Skilldrick

Répondre

3

Le moyen le plus rapide? jQuery:

$(".myClass").each(function() { 
    // work with your data here 
}); 
+0

cela peut être le chemin le plus court mais pas le plus rapide ... – galambalazs

+0

Cela dépend si vous optimisez pour les cycles de processeur ou les cycles de développement :). C'est probablement le plus rapide à mettre en œuvre, mais vous avez raison, ce n'est peut-être pas le moyen le plus efficace. –

+0

Est-ce si lent? –

0

Plus lowlevel, mais devrait être beaucoup plus rapide (beaucoup moins de frais généraux):

var myelements = document.evaluate('//div[@class=myClass"]', document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null); 
for (var i = 0; i < myelements.snapshotLength; i++) { 
    var dataElement = myelements.snapshotItem(i); 
    // work with your data here 
} 

(ok, vous auriez à le faire deux fois (une fois pour div et une fois pour span), il est plus de code et n'a pas l'air aussi agréable, mais il devrait être encore plus rapide)

0

Si vous voulez obtenir à tous les documents avec une classe spécifique, vous devrez tester la présence de cette classe sur chaque objet. Vous voudrez utiliser un

document.getElementByTagName("*") // This should select everything 

et de passer en boucle pour détecter le nom correct.

if (regex test == true) { 
    // you found an element that matches 
    // do what you will with it. 
} 

Si vous trouvez les éléments dont vous avez besoin, faites ce dont vous avez besoin avec eux. Vous avez maintenant traité tous les éléments de la page et trouvé les éléments correspondant à vos critères. Bonne chance.

+0

J'ai lu que regex et HTML sont une union interdite sous les cieux ... Alors, quel genre de regex serait-ce? –

+0

Vous devez utiliser une expression régulière pour rechercher dans un nom de classe. Vous pouvez avoir plusieurs noms de classe ajoutés dans le même attribut. (ex class = "this this ouAutre"; if (className == "this") {} ne fonctionnerait pas car la chaîne complète est "this thatAutre". – John

Questions connexes