2010-07-23 6 views
2

J'essaie d'utiliser une variable à l'intérieur du corps. juste voir ci-dessous l'exemple de codeen essayant d'ajouter une variable pour div id. c'est possible?

<body> 
<div class="demo"> 
    <script> 
    var count = 4; 
     for(i=1;i<=count;i++){ 
      var varSlid = "A"+i; 
      $('.demo').append('<div id= varSlid ></div></br>'); 
     } 
    </script> 
</div> 
</body> 

mais ce sont des erreurs de lancement. s'il vous plaît vérifier et me dire où l'erreur est?

+0

Ce n'est pas javascript valide déclaration. Qu'est-ce que vous essayez exactement de faire? – PSK

+0

@ user399426 - Vous pouvez mettre en forme les blocs de code dans vos publications en les indentant de 4 espaces. –

+2

Que diriez-vous de dire ce qu'est le message d'erreur? – RoToRa

Répondre

0

Try this ...

$('.demo').append($('div').attr('id', varSlid)).append('<br/>'); 

également envelopper cette fonction dans toute on dom ready comme

$(function(){ 
    //your code here... 
}); 
5

Essayez cette

var varSlid = "A"+i; 
      $('.demo').append('<div id= ' + varSlid + '></div></br>'); 
0

changement: $('.demo').append('<div id= varSlid ></div></br>'); à: $('.demo').append('<div id=' + varSlid + ' ></div></br>');

3

L'erreur est que .demo n'a pas encore fini d'analyser, donc vous ne devriez pas essayer de le manipuler. Cela peut provoquer des problèmes graves dans les anciennes versions de IE ("operation aborted", n'importe qui?). Déplacez le script juste en dehors de la balise <div>:

<body> 
<div class="demo"> 
</div> 
<script> 
    var count = 4; 
     for(var i=1;i<=count;i++){ 
      var varSlid = "A"+i; 
      $('.demo').append('<div id='+varSlid+'></div><br/>'); 
     } 
</script> 
</body> 

Comme d'autres l'ont souligné, vous avez également besoin des guillemets pour travailler la variable dans votre chaîne HTML, bien que cela n'aurait pas causé des erreurs - vous ne juste se retrouver avec un tas d'éléments tous avec le même id ("varSlid").

0

Il est: $('.demo').append('<div id="' + varSlid + '"></div></br>');

1

Peut-être est mon manque de jQuery-fu ... mais ne devrait pas être </br><br/>?

De même, vous ne devez pas créer 4 éléments <div id= varSlid > car l'attribut id doit être unique.

Edit: Vous avez probablement l'intention d'utiliser la valeur de la variable varSlid l'attribut id, mais Rit maintenant il fait partie d'une chaîne littérale hardcoded. Vous voudriez quelque chose comme:

$('.demo').append('<div id="'+varSlid+"'></div><br/>'); 
+1

le varSlid est censé assigner une nouvelle valeur dans chaque boucle. Le problème est son utilisé comme une chaîne régulière pas comme une variable –

+0

Merci, j'ai raté ça! c'est ce que je reçois quand je réponds à des questions avant de boire du café le matin;) –

+0

merci à tous. son fonctionnement bien .. Je vais mettre en œuvre vos précieuses suggestions –

0

Je ne suis pas réelle claire sur la question initiale de l'OP, mais cela correspond le titre.

HTML5 a un attribut data- *, où * représente vos données. J'ai eu de la chance avec ce passage des variables Web.py (python) des fonctions templator vers js.

https://developer.mozilla.org/en-US/docs/Learn/HTML/Howto/Use_data_attributes

<!DOCTYPE html> <!--declare we are using HTML5--> 
<html> 
<head> 
    <script> 
    var jsVersionData = ''; //create a global variable for example simplicity 
    </script> 
</head> 
<body> 
    <div id="stored-variable" data-stored="7"> 
    <script> 
     jsVersonData = document.getElementById("stored-variable"); //get the variable from the div 
    </script> 
    </div> 

    <script> 
    var myStr = jsVersonData.dataset.stored; // the variable 
    var myInt = Number(myStr);    // convert the variable to int 
    alert(myInt + 1); 
    </script> 
</body> 
</html> 
Questions connexes