我在PHP中有一个数组(它必须是PHP,原因有些复杂,超出了本文的范围):
<?php
$arr = array(Div1, Div2);
foreach ($arr as $value) {
print_r($value);
}
?>然后,我将尝试使用一些Jquery来隐藏数组中有类的每个元素。
<script>
$(document).ready(function(){
$("."+"<?php echo $value; ?>").hide();
});
</script>但是,这只隐藏了其类与数组中的最后一项相等的元素。换句话说,只有类为Div2的项才会隐藏。如何将其应用于数组中的每个项?
发布于 2017-09-12 00:02:35
可以使用php数组并在javascript中使用它。最简单的方法是使用json:
<?php
$arr = array('Div1', 'Div2');
?>
<script>
$(document).ready(function(){
var arr = <?=json_encode($arr);?>;
arr.forEach((className)=>$("."+className).hide());
});
</script>或者您可以加入数组并让jquery迭代它:
<script>
$(document).ready(function(){
var arr = <?=json_encode($arr);?>;
$('.'+arr.join(', .')).hide();
});
</script>发布于 2017-09-11 23:56:52
foreach循环完成后,$value仍然绑定到$arr的最后一个值。或者以某种方式将js-输出包含到循环中,或者在js-php-循环中再次通过数组循环。
发布于 2017-09-11 23:58:33
用此替换JS行,只要$arr在JS代码所在的范围内(这应该是基于您的问题),它就能工作。
<?php
foreach($arr as $value) {
echo '$("' . '.' . $value . '").hide();';
}
?>您以前只是在数组上循环,不对值执行任何操作(除了对其使用print_r() )。因此,当您到达第二个代码段中的代码时,只有$value的最后一个值是可用的。
https://stackoverflow.com/questions/46165885
复制相似问题