-1

私はwordpressのテンプレートファイルで次のコードを試しました。

  <?php query_posts('showposts=9&post_type=packages&packages_category='.$category.'&order=ASC&paged='.$paged); ?>          <?php while (have_posts()) :the_post(); ?>
     ...
     ...
  <script type="text/javascript">
        $(document).ready(function() {
         $(".package-book a").click(function(){
         var $temp = '<?php the_title(); ?>';
             $('.book-title').val(' '); 
                $('.book-title').val($temp);     
         });
        });
      </script> 
             <span class="package-book"> 
            <a href="...">Book</a>
            </span>
           <?php endwhile; ?>

クラスbook-titleの入力タイプのテキストがあります<input type="text" class="book-title"/> 。クラスpackage-bookのアンカータグをクリックすると、テキストボックスに現在の値が表示 <?php the_title(); ?>されますが、上記のjqueryコードでは、すべての入力テキストボックスにループ内の最後のアイテムの値が表示されます。 。入力タイプのテキストボックスに現在のタイトルの値を表示する必要があります。私を助けてください...

4

1 に答える 1

4

PHPループにJSを追加することはお勧めしません。代わりに、値をデータ属性として割り当てます。たとえば、このスパンを作成するときは、投稿タイトルのデータタイトルを付けます。

PHP

<span class="package-book"> 
    <a href="..." data-title="<?php echo the_title(); ?>">Book</a>
</span>

jQuery(phpループの外)

$(document).ready(function() {
    $(".package-book a").on('click', function(){
        $('.book-title').val($(this).data('title'));
    });
});
于 2013-01-04T14:02:26.550 に答える