L'appel d'une fonction sans cliquer où que ce soit
Je suis nouveau dans la programmation et je vais essayer d'appeler une fonction sans n'importe quel bouton ou cliquez sur l'événement. Je suis en train de faire un tableau dans un tableau à l'aide de la fonction javascript. Voici mon code pour l'instant:
<html>
<head> <title> Hello </title> </head>
<body>
<table border=1>
<tr>
<td> Hello! <input type='hidden' value='0' id='theValue' /> <script> add(); </script> <div id='myDiv'> </div> </td>
</tr>
<script>
$ctra = 1;
$ctr1a = 1;
function add() {
var ni = document.getElementById('myDiv');
var numi = document.getElementById('theValue');
var num = (document.getElementById('theValue').value -1)+ 2;
numi.value = num;
var newdiv = document.createElement('div');
var divIdName = 'my'+num+'Div';
newdiv.setAttribute('id',divIdName);
newdiv.innerHTML = "<table border=1>"+
"<tr>"+
"<td> Hello! <input type='hidden' value='0' id='theValue' /> <script> add(); </script> <div id=('" + divIdName + "')> </div> </td>"+
"</tr>"+
"</table>";
if($ctra<100){
ni.appendChild(newdiv);
$ctra++;
}
}
</script>
</table>
</body>
</html>
Quand je le lance, il affiche
"+ ""+ "
Hello!
"; if($ctra<100){ ni.appendChild(newdiv); $ctra++; } }
dans le navigateur. Quel pourrait être le problème? Je vous remercie à l'avance!
MODIFIER
function add() {
var ni = document.getElementById('myDiv');
var numi = document.getElementById('theValue');
var num = (document.getElementById('theValue').value -1)+ 2;
numi.value = num;
var newdiv = document.createElement('div');
var divIdName = 'my'+num+'Div';
newdiv.setAttribute('id',divIdName);
newdiv.innerHTML = "<table border=1><tr><td> Hello! <input type='hidden' value=0 id='theValue' /><div id='" + divIdName + "'></td></tr></table>";
ni.appendChild(newdiv);
for(var i=1;i<100;i++) {
var ni = document.getElementById(divIdName);
var numi = document.getElementById('theValue');
var num = (document.getElementById('theValue').value -1)+ 2;
numi.value = num;
var newdiv = document.createElement('div');
var divIdName = 'my'+num+'Div';
newdiv.setAttribute('id',divIdName);
newdiv.innerHTML = "<table border=1><tr><td> Hello! <input type='hidden' value='" + i + "' id='theValue' /><div id='" + divIdName + "'></td></tr></table>";
ni.appendChild(newdiv);
}
}
- votre script ne semble pas être le bon endroit. l'écrire dans la section de la tête, puis appeler votre funcation
- si vous avez obtenu votre solution de marquer qu'une réponse
Vous devez vous connecter pour publier un commentaire.
Essayer cette
Espère que cela fonctionne pour vous..:)
<body onload="add()">
100 fois? Je sais qu'il va appeler uniquementadd()
une fois, même si je copier-coller à tout jamais. Je suis en train de créer un tableau dans un tableau 100x. Il semble que laif
déclaration à l'intérieur de la fonction n'est pas de travail.divIdName
dans la lignenewdiv.innerHTML = "<table border=1><tr><td> Hello! <input type='hidden' value='0' id='theValue' /><div id='" + divIdName + "'></td></tr></table>";
déjà fait. AtheValue
quelque chose à faire avec ça? Est il possible que je peux changer leurs valeurs? 🙂Votre JS résultats dans les blocs imbriqués, ce n'est pas autorisé dans le code html. La fonction add() dans vos blocs n'est pas défini, car lorsque le navigateur rencontre, il n'a pas vu votre définition de l'ajouter() pour le moment. Votre table contient un script qui contient une autre table qui contient encore un autre script. Il est très déroutant 😛
OK, si je comprends bien: vous avez un seul tableau. Vous aimeriez avoir JS mettre une autre table à l'intérieur. La chose que vous voulez mettre à l'intérieur est, dans cet exemple, une copie de la table. Vous souhaitez retrouver avec un tableau dans un tableau et que vous souhaitez l'obtenir par programmation.
D'abord séparer de vos préoccupations: les scripts html et:
Si vous mettez votre add() d'après la définition, et que vous mettez votre script après le corps, puis le navigateur de la rencontre et de l'exécuter. HTH:
table3.setAttribute('id', 't3'); mydiv3 = table3.getElementsByTagName("div")[1]; mydiv3.setAttribute('id', 'myDiv3'); mydiv2.appendChild(table3);
pour ajouter une autre table, ce qui rend le bloc précédent modèle. Mais il ne fonctionne pas. Ce qui pourrait être fait pour remédier à ce problème?Vous avez
</script>
à l'intérieur du code. Navigateur qui interprète comme une fin de javascript et des sauts en arrière pour HTML. Pour résoudre ce problème, vous pouvez diviser cette chaîne en par exemple</sc'+'ript>
. Qui va résoudre ce problème, mais probablement vous aurez toujours besoin d'un peu de travail sur le script, mais c'est une autre histoire.Vous devez basculer entre les différentes citations, et de supprimer les accolades pour le code, comme ceci :
Parce que vous ne pouvez pas accéder à la fonction sans evnt dans les dom..Vous devez appeler la fonction sur n'importe quel événement de l'elemnt.
add()
dans<body onload='add'>
<div id=('" + divIdName + "')>