我有这个PHP代码:
<?php if ( $hide_all_info == 0 ) { ?>
<span class="film_meta_wrap">
<div class="film_meta_title"><?php echo the_title(); ?></div>
<div class="film_meta_text"><?php echo $film_meta_info; ?></div>
</span>
<?php } elseif ( $hide_all_info == 1 ) { ?>
<span class="film_meta_wrap"></span>
<?php } ?>
我需要将if
语句的结果移动/追加到当前循环项中的现有div 中,如下所示:
jQuery( ".film_meta_wrap" ).appendTo( ".arve-embed-container" );
我当前的结果是预期的,但不是我需要做的事情:无论所谓的if
语句如何,所有代码都被附加,并且它也在每个循环项中放置相同的跨度(即。doesn&# 39;尊重它为个别职位所处的循环。那有意义吗?在解析和填充php变量和条件后,如何让jQuery在之后附加一个跨度。并为每个循环项目。它甚至可能吗? Ajax是一个可以接受的解决方案,只是不知道它是如何工作的。
编辑**我修改了建议的代码以附加elseif
结果:
<?php if ( $hide_all_info == 0 ) { ?>
<script>
var _html = '<span class="film_meta_wrap">'
+'<div class="film_meta_title"><?php echo the_title(); ?></div>'
+'<div class="film_meta_text"><?php echo $film_meta_info; ?></div>'
+'</span>';
jQuery('.arve-embed-container').append(_html);
</script>
<?php } elseif ( $hide_all_info == 1 ) { ?>
<script>
var _html = '<span class="film_meta_wrap"></span>';
jQuery('.arve-embed-container').append(_html);
</script>
<?php } ?>
答案 0 :(得分:0)
你可以这样做:
<?php if ( $hide_all_info == 0 ) {
echo '<script>';
$innerHtml = '<span class="film_meta_wrap">
<div class="film_meta_title">'.the_title().'</div>
<div class="film_meta_text">'.$film_meta_info.'</div>
</span>';
echo 'jQuery(function(){ jQuery(".arve-embed-container").append('.$innerHtml.') });';
echo '</script>'
} elseif ( $hide_all_info == 1 ) { ?>
<span class="film_meta_wrap"></span>
<?php } ?>
最后让它发挥作用
执行:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<!-- jQuery should be decalred on the top --->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
</head>
<body>
<div class="arve-embed-container">
</div>
<?php
$hide_all_info = 0;
if ( $hide_all_info == 0 ) {
$innerHtml = '<span class="film_meta_wrap">
<div class="film_meta_title">Yo</div>
<div class="film_meta_text">Wassup</div>
</span>';
echo '<script>';
echo '$(function(){ $(".arve-embed-container").append(\''.str_replace("\n", "", $innerHtml).'\') });';
echo '</script>';
} elseif ( $hide_all_info == 1 ) { ?>
<span class="film_meta_wrap"></span>
<?php } ?>
</body>
</html>