0
votes

itérer div avec des boîtes de texte et modifier l'identifiant à l'aide de JavaScript

J'essaie de parcourir chaque zone de texte placée dans

code> à l'aide de JavaScript afin de modifier leur identifiant comme celui-ci ..
    function iterateBoxesAndSetUniqueIds() {

    var childDivs = document.getElementById('subContent').children;
    //alert(childDivs.length);

    for( i=0; i< childDivs.length; i++ )
    {
        var el = childDivs[i];
        el.name = 'events[' + i + '].Key'; // 
        el.id = 'events[' + i + '].Key';

        el.name = 'events[' + i + '].Value.StartDate'; 
        el.id = 'events[' + i + '].Value.StartDate';

        el.name = 'events[' + i + '].Value.EndDate'; 
        el.id = 'events[' + i + '].Value.EndDate';

        el.name = 'events[' + i + '].Value.Description'; 
        el.id = 'events[' + i + '].Value.Description';
    }


2 commentaires

Veuillez transformer ceci en un MRE sous la forme d'un Snippet de pile annoncable , afin que nous puissions reproduire le Émettre de la question de la question. À votre santé!


J'ai mis à jour ma réponse ci-dessous pour répondre à d'autres problèmes avec votre code d'origine. Faites-moi savoir si vous rencontrez plus de problèmes.


3 Réponses :


1
votes

Dans votre boucle pour la boucle, vous avez enfants [i] code> modifier ceci en enfants [i] code>.

Vous référencez une variable enfants code > Cela n'existe pas dans votre boucle. Vous devez accéder à chaque valeur détenue dans le NODELIST ChildDivs CODE> P>

Pour résoudre le deuxième problème, vous devez utiliser l'indice d'itération i code> en tant que vertiable plutôt que le transmettre comme une chaîne. E.G: P>

for( i=0; i< childDivs.length; i++ ) {
    var el = childDivs[i];

    el.name = events[i].Key;
    el.id = events[i].Key;
}


0 commentaires

0
votes

Vous utilisez les enfants Var et il n'existe pas. Le Var correct est des enfants. Voici la correction: xxx


1 commentaires

Merci mais je suis désolé que l'identifiant de la div au lieu des zones de texte. Je cherche un moyen de donner de la Textbox dans Div appelé Sous-code le même identifiant unique.



2
votes

Tout d'abord, la cause de RéférenceError: enfants code> n'est pas défini est ce code xxx pré>

si vous modifiez cela à: p>

     function iterateBoxesAndSetUniqueIds() {

    var subContents = document.querySelectorAll("#subContent")

    //LOOPS OVER ALL SUBCONTENTS
    for (i = 0; i < subContents.length; i++) {
        var children = subContents[i].children
        console.log(children)
        children[0].children[0].name = 'events[' + i + '].Key';
        children[1].children[0].name = 'events[' + i + '].Value.StartDate';
        children[2].children[0].name = 'events[' + i + '].Value.EndDate';
        children[3].children[0].name = 'events[' + i + '].Value.Description';
    }
}


1 commentaires

Si l'ID doit être modifié, le code doit également avoir enfants [0] .Children [0] .Id = enfants [0]. Children [0 ].Name = 'Evénements [' + I + ']. ';]