我的wordpress项目中存在以下问题:
我在我的页面上隐藏了2个div调用“ div_sc_1”和“ div_sc_2”。 我想用jQuery函数.show()来显示它们,如果未“选中”它们。 “已检查”状态写在我的数据库中。
使用我的实际代码,如果未“选中”仅div_sc_1或div_sc_2,则如果两个div均未选中,则一切正常,但仅显示一个,而我不明白为什么。
这是我的代码:
foreach($list_id_scores as $scores){
$id_s = $scores->id_score;
$checked = $wpdb->get_var( "SQL query for 'checked' status");
if($checked == "1"){
echo " score n°".$id_s." is over<br />";
}else{
$div_id = "div_sc_".$id_s;
echo $div_id; /// this echo show me that my loop is working
?>
<script>
var div_sc = <?php echo json_encode($div_id); ?>;
jQuery(document).ready(function(){ jQuery("#"+div_sc).show(); });
</script>
<?php
}
}
您的问题是什么?谢谢您的时间
答案 0 :(得分:0)
您要多次定义全局变量div_sc
。所有<script>
标签共享相同的范围,因此仅保留一个值。 .ready()处理程序仅在定义了所有变量(页面的其余部分已完成加载)之后执行,而不会在两者之间执行。
最好这样做:
<script>
jQuery(document).ready(function(){
<?php
foreach($list_id_scores as $scores){
$id_s = $scores->id_score;
$checked = $wpdb->get_var( "SQL query for 'checked' status");
if($checked == "1"){
echo " score n°".$id_s." is over<br />";
}else{
$div_id = "div_sc_".$id_s;
echo $div_id; /// this echo show me that my loop is working
?>
jQuery("#"+<?php echo json_encode($div_id); ?>).show();
<?php
}
}
});
</script>