将php变量传递给jquery

时间:2011-09-02 09:17:39

标签: php jquery

  for($v=0;$v<11;$v++) {
              echo "<div class='unsubscribed'><a class='button'>Unsubscribe</a></div>";
    echo "<div id='$v'></div>";
        }

我希望onclick取消订阅的类以在同一次迭代中删除下面的div。所以为此,我必须将$ v传递给jquery。

这是我从jquery开始但我不知道如何获得变量$ v。我该如何做到这一点?

$.ready(
function() {
$('.unsubscribed').remove();
}
);

2 个答案:

答案 0 :(得分:5)

你不需要将任何内容传递给jquery:

$(document).ready(function(){
    $('.unsubscribed').one('click',function(){
        $(this).next().remove();
    });
});

这适用于您当前的HTML 为了更安全,您应该为要删除的元素添加一个类:

 for($v=0;$v<11;$v++) {
     echo "<div class='unsubscribed'><a class='button'>Unsubscribe</a></div>";
     echo "<div class='to_be_removed'></div>";
 }

通过这种方式,您可以引用要删除的div,而不必在unsubscribed div之后:

$(document).ready(function(){
    $('.unsubscribed').one('click',function(){
        $(this).next('.to_be_removed').remove();
    });
});

答案 1 :(得分:0)

更好的解决方案可能是:

<?php for($v=0;$v<11;$v++) { ?>
  <div class="unsubscribed" rel="<?php echo $v; ?>">
     <a class='button'>Unsubscribe</a>
  </div>
  <div id="<?php echo $v; ?>"></div>
<?php } ?>

$(document).ready(function(){
    $(".unsubscribed").click(function(){
        var div_to_remove = $(this).attr("rel");
        $('#'+div_to_remove).remove();
    });
});

我更喜欢这样做,因为当您在中间添加内容时,使用.next有时会导致问题。那时很难找到问题。

这样,您只需将有关要删除的div的所需信息嵌入到触发事件的div的属性中。

注意:在此示例中,单击.unsubscribed div时调用该函数 - 而不是.button

您还必须确保,可移动div具有不同且唯一的ID。如果$v不是唯一的,您可以执行以下操作:像这样的东西:

...
<div id="<?php echo $v . $i; ?>"></div>
...