У меня есть этот 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
оператор, и он также помещает одинаковые промежутки в каждом элементе цикла (т. е. не учитывает цикл, в котором он находится для отдельных сообщений). Имеет ли это смысл? Как бы я получить JQuery, чтобы добавить один промежуток после Переменные и условия php анализируются и заполняются. И для каждого элемента цикла. Это вообще возможно? 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 } ?>
Ты можешь сделать:
<?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>
Других решений пока нет …