Mon code est le suivant
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="https://cdn.bootcss.com/jquery/2.0.0/jquery.min.js"></script>
</head>
<body>
<p class="name name0">
<p>test</p>
</p>
<p class="name name1">
<p>test2</p>
</p>
<script>
function func1(className) {
return `$('${className}').find('p').text()`
}
for(var i=0;i<$('.name').length;i++){
console.log(`name${i} p:`,func1(`.name${i}`));
}
//第一次循环生成语句: $('.name0').find('p').text();
//第二次循环生成语句: $('.name1').find('p').text();
</script>
</body>
</html>
Je ne veux pas obtenir la valeur de chaque P, juste par analogie. Je veux savoir comment restituer dynamiquement le code dans <script> via la valeur de retour de func1() ? Ou comment rendre dynamiquement des fichiers js
Je veux que ce fichier du code actuel génère dynamiquement du code js basé sur .name p, comme
quand il y a deux .name p
<p class="name name0">
<p>test</p>
</p>
<p class="name name1">
<p>test2</p>
</p>
Ensuite, le code final dans <script>
<script>
$('.name0').find('p').text();
$('.name1').find('p').text();
</script>
Quand il y a trois .name p
<p class="name name0">
<p>test</p>
</p>
<p class="name name1">
<p>test2</p>
</p>
<p class="name name2">
<p>test3</p>
</p>
Ensuite, le code final dans <script>
<script>
$('.name0').find('p').text();
$('.name1').find('p').text();
$('.name3').find('p').text();
</script>
Comment pouvons-nous obtenir cet effet ?
Voulez-vous que le résultat renvoyé dans fun1() soit utilisé comme instruction d'exécution js ? ? Vous pouvez utiliser eval() pour exécuter
Vous pouvez définir directement fun1 pour renvoyer le texte du
className
DOM spécifié, puis simplement l'exécuter directement. Quoi qu’il en soit, lorsque vous générez du code, vous souhaitez l’exécuter immédiatement.Vous n'avez pas besoin de générer dynamiquement des scripts, le script lui-même est très flexible. Le code ci-dessous est équivalent à celui que vous souhaitez générer
Si vous souhaitez parcourir chacun
.name p
, vous pouvez directementSi vous souhaitez traiter le nom spécifié, vous pouvez
Donc, ce que vous voulez faire doit être géré par des scripts générés dynamiquement ? Si cela est vraiment nécessaire, c'est généralement quelque chose que le serveur fait, et non le frontal. Si le front-end peut générer un script à exécuter, il peut certainement exécuter un certain morceau de code directement...