2010-06-24 4 views
1

Première partie: J'essaie de comprendre comment utiliser le DOM et Javascript pour créer un tableau contenant les liens dans plusieurs listes. Le problème est que j'ai besoin que chaque UL ait un tableau unique contenant les liens; Le seul ID unique que je peux utiliser dans ce cas est la valeur du nom dans les balises de lien. Je ne serai pas en mesure d'ajouter quelque chose d'autre au balisage. La référence javascript devra être contenue dans un seul script, avec une référence au script au bas de la page.Besoin d'aide pour créer des tableaux Javascript dynamiques

Deuxième partie: Ce que je dois en fin de compte à faire, est de cacher chacune des listes, et les remplacer par juste les deux premiers liens, avec une « vue tout » lien ci-dessous les deux liens qui, lorsque vous cliquez dessus, ajoute les deux autres liens à la liste.

Encore une fois, je ne peux pas ajouter de balisage, divs, etc etc .; il doit être entièrement basé sur les informations ci-dessous, le DOM et javascript.

Merci pour toute aide que vous pouvez fournir!

<ul> 
    <li> 
     <a href="#" name="obj_a">Section One, Article One</a> 
    </li> 
    <li> 
     <a href="#" name="obj_b">Section One, Article Two</a> 
    </li> 
    <li> 
     <a href="#" name="obj_c">Section One, Article Three</a> 
    </li> 
    <li> 
     <a href="#" name="obj_d">Section One, Article Four</a> 
    </li> 
</ul> 

<ul> 
    <li> 
     <a href="#" name="obj_e">Section Two, Article One</a> 
    </li> 
    <li> 
     <a href="#" name="obj_f">Section Two, Article Two</a> 
    </li> 
    <li> 
     <a href="#" name="obj_g">Section Two, Article Three</a> 
    </li> 
    <li> 
     <a href="#" name="obj_h">Section Two, Article Four</a> 
    </li> 
</ul> 
+1

Il est bon que vous ayez un [Document d'exigences logicielles] clair (http://en.wikipedia.org/wiki/Software_Requirements_Specification). Qu'avez-vous fait? – Anurag

+0

En ce qui concerne l'objectif ultime décrit dans la deuxième partie (bon vous l'avez mentionné): Je ne le ferais pas en utilisant des tableaux de listes, décrits dans la première partie. Si vous ne pouvez pas modifier le balisage, j'ajouterais dynamiquement une classe à tous les éléments de la liste, à l'exception des deux premiers, par ex. '.extra-item', etc., et ajouter un bouton/span/quoi avec un événement onclick, qui bascule le nom de classe du' ul', par exemple. à '.invisible'. Si vous ajoutez '.invisible .extra-item {display: none }' à votre CSS, tous les éléments sauf les deux premiers seront cachés ou révélés en cliquant sur le bouton/span/any. –

Répondre

2

J'utilise jQuery pour mes solutions;)

Première partie:

var list = new Array(); 
$.each($('ul'), function(index, value) { 
    list.push(new Array()); 
    $.each($(value).find('li a'), function(index2, value2){ 
    list[list.length - 1].push(value2.href); 
    }); 
}); 

Deuxième partie:

Je ne comprends vraiment pas les exigences, mais jetez un oeil à jQuery, il rend vraiment ces prises faciles.

+0

Il semble qu'une bibliothèque Javascript ne soit pas une option, en raison de l'exigence de "la référence javascript devra être contenue dans un seul script." Est-ce le cas, OP? –

+1

Vous pouvez ajouter une JS-Library dans le script, où est le problème, vous n'avez pas besoin de mettre jQuery dans un autre fichier. –

+0

Négatif; J'ai accès à la bibliothèque yahoo YUI mais pas jQuery dans ce cas. Je pense que l'idée de Marcel ci-dessus pourrait fonctionner magnifiquement bien. – Michael

Questions connexes