Je suis en train d'écrire une application de 'traducteur en ligne' à utiliser avec une plate-forme de cloud computing pour étendre des langages non supportés. La majorité utilise jQuery pour trouver la valeur du texte, la remplace par la traduction, puis ajoute l'élément avec une balise span ayant un identifiant unique, à utiliser ailleurs dans l'application. Le problème se pose cependant, lorsqu'il y a plus d'un élément, disons, qui ont exactement la même valeur à traduire (éléments appariés). Ce qui se passe dans la fonction en question est qu'elle place tous les éléments correspondants dans le même intervalle, en prenant les deuxième, troisième, quatrième, etc. Mon code est à peu près comme dans cet exemple:jQuery: Donner à chaque élément correspondant un ID unique
<script src='jquery-1.4.2.js'></script>
<script>
jQuery.noConflict();
var uniqueID='asdfjkl';
jQuery(window).ready(function() {
var myQ1 = jQuery("input[id~=test1]");
myClone=myQ1.clone();
myClone.val('Replaced this button');
myQ1.replaceWith('<span id='+uniqueID+'></span>');
jQuery('#'+uniqueID).append(myClone);
});
</script>
<table>
<tr><td>
<input id='test1' type='button' value="I'm a button!"></input>
<input id='test2' type='button' value="And so am I"></input>
</tr></td>
<tr><td>
<input id='test1' type='button' value="I'm a button!"></input>
</tr></td>
</table>
Pour contourner ce problème, je l'ai expérimenté avec l'aide d'une boucle pour créer une classe pour chaque travée, passant par incréments jusqu'à ce que jQuery ("entrée [id = ~ test1] ") .length, mais je n'arrive pas à faire quoi que ce soit que je fasse pour travailler. Est-il possible de donner à chaque élément correspondant un identifiant unique? Ma maîtrise de jQuery est mise à l'épreuve!
Merci pour toute aide à l'avance.
Aaron
Votre HTML original n'est pas valide. Vous ne pouvez pas avoir deux éléments utilisant le même identifiant. Ils peuvent avoir le même nom, mais pas le même identifiant. – tvanfosson