如何使用javascript生成javascript代码

时间:2016-03-06 02:08:43

标签: javascript

我是javascript的新手,所以不要指望我知道其他什么比写的更多:)

所以我有一个包含大量javascript代码的javascript文件,除了每个元素的数字都在变化之外几乎看起来一样。

我的大多数代码都在一个函数内部,因为它是一个剪切掉的。

我的代码的相关部分类似于:

    //Upgrade 1
    if (CREDITS >= UpgradePrice1 && Upgrade1 === 0){
        document.getElementById("Upgrade1").style.display = "block";}
    else{document.getElementById("Upgrade1").style.display = "none";}

    //Upgrade 2
    if (CREDITS >= UpgradePrice2 && Upgrade2 === 0){
        document.getElementById("Upgrade2").style.display = "block";}
    else{document.getElementById("Upgrade2").style.display = "none";}

    //Upgrade 3
    if (CREDITS >= UpgradePrice3 && Upgrade3 === 0){
        document.getElementById("Upgrade3").style.display = "block";}
    else{document.getElementById("Upgrade3").style.display = "none";

    And so on...

这些值在名为StandardValues.js的文件中分配:

var UpgradeName1 = "Craftmanship Lvl 1";
var UpgradePrice1 = 100;
var UpgradeContent1 = "+100% Gods Hands! <br> +20% Blessed Farmer!";
var Upgrade1 = 0;

var UpgradeName2 = "Craftmanship Lvl 2";
var UpgradePrice2 = 200;
var UpgradeContent2 = "+100% Gods Hands! <br> +20% Blessed Farmer!";
var Upgrade2 = 0;

And so on...

如果它是一个html代码,我试图生成我将使用PHP同时功能,并使其回显相同的代码与更改的数字一个specefic次数。 但由于这是一个javascript文件,我真的不认为这是一个选项?

之前的javascript代码位于.js文件中。

我认为潜在的解决办法可能是:

Inside a .php file:

<?php
$Upgrades = 10;
$CurrentUpgrade = 1;

while ($Upgrades >= $CurrentUpgrade){
echo "
<script>
function Upgrade1(){
//Upgrade ".$CurrentUpgrade."
    if (CREDITS >= UpgradePrice".$CurrentUpgrade." && Upgrade".$CurrentUpgrade." === 0){
        document.getElementById('Upgrade".$CurrentUpgrade."').style.display = 'block';}
    else{document.getElementById('Upgrade".$CurrentUpgrade."').style.display = 'none';}
}
</script>
";
$CurrentUpgrade ++;

}

?>

*对于这部分中的任何拼写错误,请快速完成。

但我非常希望将javascript代码保存在我的.js文件中,而不是将其放在我的.php文件中。

总结一下,我想(如果可能的话):

  • 将所有代码保留在.js文件中
  • 使用javascript代码生成javascript代码
  • 重复相同的javascript元素,只使用每个元素更改的数字
  • 尝试通过执行此操作来缩短代码量。
  • 仍然可以在购买功能中单独使用任何指定的变量。

我希望我提供了所有相关信息:)

提前致谢。

1 个答案:

答案 0 :(得分:0)

您可以创建一个方法(在index中传递变量末尾的数字):

function myFunction(newUpgradePrice, newUpgrade, index) {
    if (CREDITS >= newUpgradePrice && newUpgrade === 0){
        document.getElementById("Upgrade" + index).style.display = "block";}
    else{document.getElementById("Upgrade" + index).style.display = "none";
 }

这是你在找什么?是否需要更改以满足您的需求?