Ici,

var data = '
<table align="left" border="1" cellpadding="1" cellspacing="1" style="width: 100%;">    
    <tbody>     
        <tr>
            <td>
                <textarea cols="80" id="editor" name="editor" rows="10">This is my textarea to be replaced with Editor.</textarea>
            </td>
        </tr>
        <tr>
            <td colspan="2">&copy; 2016 Vishmay Shah</td>
        </tr>
    </tbody>
</table>
<p>&nbsp;</p>'

Je veux mettre à jour l'ID de l'éditeur vers editor1 en utilisant jquery dans la variable de données

Je peux y accéder en utilisant

   $('#editor', Data)[0].id=$('#editor', Data)[0].id+'1';

Mais je veux sauvegarder le HTML mis à jour dans la variable de données.


MISE À JOUR

Il y aura plusieurs éditeurs avec le même éditeur d'identifiant.

En fait, je veux le rendre unique en ajoutant un index.

C'est-à-dire editor0, editor1, ..., la fonction replace remplacera tous les éditeurs, donc cela n'aidera pas

  var editors = $('#editor', Data);
    for (var i = 0; i < editors.length; i++) {
        var subeditor = editors[i].id + i;
        editors[i].id = subeditor;
     }
0
VISHMAY 8 mars 2016 à 09:32

3 réponses

Meilleure réponse

Si vous en avez plusieurs avec le même nom d'ID, vous devrez peut-être le trouver par attribut et remplacer l'ancien nom d'ID par un index comme ceci:

var Data = '<table align="left" border="1" cellpadding="1" cellspacing="1" style="width: 100%;">    <tbody>     <tr><td><textarea cols="80" id="editor" name="editor" rows="10">This is my textarea to be replaced with Editor.</textarea><textarea cols="80" id="editor" name="editor" rows="10">This is my textarea to be replaced with Editor.</textarea></td>     </tr>       <tr>            <td colspan="2">&copy; 2016 Vishmay Shah</td>       </tr>   </tbody></table><p>&nbsp;</p>';
// this will look the element with ID editor
// and replace element with index
var newElem = $(Data).find('[id="editor"]').attr('id', function(i, old) {
     return old + i;
}).end();
console.log(newElem)

DEMO (inspectez l'élément pour voir l'ID réel)

1
Norlihazmey Ghazali 8 mars 2016 à 06:40

La mise à jour de la propriété id de plusieurs éléments peut être réalisée en utilisant :last, .length à .prop(function(name, propertyValue){}) ou .attr(function(name, propertyValue){}).

Une autre approche serait d'essayer de substituer en utilisant le même className, par exemple; .editor, pour plusieurs id commençant par un nom et se terminant en nombre sur plusieurs éléments. Utilisez .length pour déterminer quel élément est actuellement en cours de traitement.

0
guest271314 8 mars 2016 à 06:44

Cela fonctionnera:

Data.replace('name="editor"','name="editor1"')
0
Afsar 8 mars 2016 à 06:36