2012-11-18 5 views
0

Par exemple, je le bloc html:Utilisez les identifiants dans les blocs html générés répétés pour naviguer dans les éléments?

<div class="span3"> 
    <div class="firstDiv"></div> 
</div> 
<div class="span3"> 
    <div class="secondDiv"></div> 
</div> 

Répliques de ce bloc HTML peut être inséré en utilisant javascript, j'ai donc un grand nombre de ces blocs l'un après l'autre. J'aimerais savoir si la mise en place d'identifiants sur tous ces éléments afin de travailler avec eux est un moyen standard/efficace de faire les choses. J'ai un bon moyen de mettre ids uniques avec des suffixes correspondant à des éléments générés, comme:

... 
    <div class="span3"> 
    <div id="firstDiv_154 class="firstDiv""></div> 
    </div> 
    <div class="span3"> 
    <div id="secondDiv_154 class="secondDiv""></div> 
    </div> 

    <div class="span3"> 
    <div id="firstDiv_155 class="firstDiv""></div> 
    </div> 
    <div class="span3"> 
    <div id="secondDiv_155" class="secondDiv"></div> 
    </div> 
    ... 

Puis en règle générale, de faire quelque chose au secondDiv quand je clique sur le firstDiv dans l'ensemble je pouvais faire:

$('.firstDiv').on ('click', function(evt) { 
    var idToFind = $(evt.target).attr('id').replace(/firstDiv/, /#secondDiv/) 
    var $secondDiv = $(idToFind); 
    // do something with $secondDiv 
}); 

y at-il des moyens plus efficaces d'utiliser ids?

Si vous n'utilisez pas id, je pourrais utiliser jQuery:

Si je veux trouver le deuxième élément de la première:

$('.firstDiv').parent().next().children() 

qui briserait si je éléments réarrangé trop, ou

$('.firstDiv').closest('.span3').find('.secondDiv') 

qui serait plus robuste, mais serait probablement plus gourmand en ressources que la première méthode jQuery.

Laquelle de ces méthodes recommanderiez-vous (développeurs web expérimentés, s'il vous plaît)?

Répondre

0

Cela dépend de ce que vous essayez d'accomplir. Si vous avez besoin d'un moyen d'identifier de manière unique un élément et qu'il n'y a pas d'autre moyen dans votre configuration actuelle de le faire, alors un identifiant unique est un bon moyen d'y aller.

+0

Salut Yatrix, Je prévois de trouver le 'secondDiv' une seule fois de 'firstDiv', mais je demandais avec des cas généraux à l'esprit quand je peux avoir des milliers de divs répétés et j'ai besoin de la manière la plus efficace. Je suis nouveau dans tout cela, j'espère donc des explications sur l'efficacité de trouver des id, ou trouver des fonctions jquery comme find(). Merci. – kdavh

+0

Je resterais avec id. find() vous oblige à analyser le DOM pour obtenir le sous-ensemble d'éléments sur lequel vous l'exécutez. Vous analysez donc le DOM puis analysez les résultats. – Yatrix

Questions connexes