Je suis novice en javascript alors permettez-moi de le dire tout de suite.Object - Un objet dans l'objet - Un tableau de ces objets
Un site Web que je fréquente contient environ 50 éléments, avec des détails sur cet élément, dans un tableau. Chaque ligne de table contient plusieurs cellules td. Certaines lignes ont des types de choses similaires, comme les clés USB ou autres. Je veux capturer chaque rangée pour pouvoir les regrouper et les réorganiser selon mes goûts.
J'ai cet objet:
function vnlItemOnPage(){
this.Category = "unknown";
this.ItemClass = "vnlDefaultClass";
this.ItemBlock = {};
}
Cela représente une ligne.
Ce que j'ai essayé de comprendre est comment capturer le bloc de html < tr>stuff< /tr>
et l'enregistrer dans this.ItemBlock
.
Cette partie est assez facile:
vnlItemOnPage.ItemBlock = element.getElementByClassName('className')[0]
?
Cela semble assez simple. Est-ce que je manque quelque chose?
Cette partie, je suis coincé:
Il y aura 50 d'entre eux, donc je besoin d'un tableau de vnlItemOnPage?
vnlAllItems = ???
var vnlAllItems = [vnlItemOnPage]?
Et, comment est-ce que j'ajouterais au tableau et supprimerais du tableau? Je ne vais probablement pas supprimer de la matrice si cela est compliqué ne dérange pas avec elle.
Une fois que je capture la < tr> html, je peux l'ajouter à un élément de table comme ceci:
myTable.appendChild(vnlAllItems[0].ItemBlock);
correcte?
Je suis ouvert à toutes les suggestions si vous pensez que j'aborde cela dans la mauvaise direction. La performance n'est pas un gros problème - du moins en ce moment. Plus tard, je peux essayer d'assembler plusieurs pages pour quelques centaines d'objets.
Merci pour votre aide!
[modifier]
Peut-être la deuxième partie de la question est si fondamentale, il est difficile de croire que je ne connais pas la réponse.
Le tableau pourrait être: var vnlAllItems = []
Et il est juste: var ligne1 = new vnlItemOnPage; vnlAllItems.push (row1); var row2 = new vnlItemOnPage; row2.ItemBlock = element.getElementByClassName ('className') [0];
Je voudrais fermer la question mais je déteste faire cela sans quelque chose à propos de la gestion de la matrice.
Si vous voulez trier des tables je pense que vous Mieux vaut utiliser un plugin de trieur de table (il y en a des tonnes), comme http://sandbox.scriptiny.com/sorter/index.html – serg
Eh bien, je ne vais pas vraiment trier la table autant que de saisir chaque ramer et reconstruire une nouvelle table comme je l'aurais voulu. Merci pour le lien cependant, je suis sûr que cela sera utile à un moment donné. – Darin
@serg - vous ne pensez pas que l'extension d'extension chrome était appropriée? C'est une extension et je n'ai pas accès au HTML côté serveur. – Darin