我是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文件中。
总结一下,我想(如果可能的话):
我希望我提供了所有相关信息:)
提前致谢。
答案 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";
}
这是你在找什么?是否需要更改以满足您的需求?