我是javascript的新手。请帮助以下。我有一个重复的代码块,大约40个“几乎相同的代码” - 它取得wordpress do_shortcode的返回值并保存到javascript变量(这部分工作正常)。
我希望通过某种实现相同功能的代码循环来缩短它。我尽量不使用COOKIE将值传递给PHP。 请参见前几行示例:
switch (id) {
case 1: oh = `<?php echo do_shortcode("[block id=\"oh1\"]"); ?>`;break;
case 2: oh = `<?php echo do_shortcode("[block id=\"oh2\"]"); ?>`;break;
case 3: oh = `<?php echo do_shortcode("[block id=\"oh3\"]"); ?>`;break;
case 4: oh = `<?php echo do_shortcode("[block id=\"oh4\"]"); ?>`;break;`
...
}
jQuery('#id').html(oh);
我必须像上面那样指定40行并且没有找到另一种方法。请分享您的宝贵意见。致谢
答案 0 :(得分:2)
这个怎么样(我假设你的开关是用Javascript编写的)。
oh = '<?php echo do_shortcode("[block id=\"oh_num\"]"); ?>'.replace('_num', yourVariableInSwitch) ;break;`
在这种情况下,您甚至不需要切换声明。
如果你必须这样做40次:
for (var i = 0; i < 40; i++) {
console.log('<?php echo do_shortcode("[block id=\"oh_num\"]"); ?>'.replace('_num', i);
}
使用PHP渲染javascript的开关案例语句
switch (yourVariable) {
<?php
for ($i = 1; $i < 41; $i++) {
print 'case ' . $i . ': oh = ' . do_shortcode("[block id=oh'" . $i . "']") . '; break;';
}
?>
}
答案 1 :(得分:1)
答案 2 :(得分:0)
在PHP中完成所有工作:
<?php
for($i=1,$l=41; $i<$l; $i++){
echo "case $i: oh = ".do_shortcode("[block id='oh$i']").' break;'
}
?>