如何使用jQuery在循环中隐藏PHP中的个别类?

时间:2016-05-22 11:54:35

标签: javascript php jquery

我有以下php循环。它显示例如4张图片。

while( $get_images_result = mysqli_fetch_array($get_images) ) {

    $image_id = (int) $get_images_result['p_image_id'];
    $p_large_image = htmlspecialchars( $get_images_result['p_large_image'] );
    $p_small_image = htmlspecialchars( $get_images_result['p_small_image'] );
    echo '<div class="col-md-3 existingImg">';
    echo '<div class="my_menu_image">';
    echo "<img src='".IMG_DIR."menu_images/$p_small_image' class='img-responsive' width='160' height='112' />";
    echo "<input type='hidden' id='p1' value='$p_large_image'>";
    echo "<input type='hidden' id='p2' value='$mid'>";
    echo "<input type='hidden' id='p3' value='$u_id'>";
    echo '<a class="icon-jfi-trash jFiler-item-trash-action menu_image_delete"></a>';
    echo '</div>';
    echo '</div>';
    $x++;
}

您可以看到此行menu_image_delete

中有echo '<a class="icon-jfi-trash jFiler-item-trash-action menu_image_delete"></a>';个班级

menu_image_delete类用于删除图像。因此,一旦我删除每个图像,它就会成功从数据库中删除图像,然后我想隐藏我删除的所选图像。所以我使用以下jQuery代码但无法使其工作:(

JQuery代码:

$('.menu_image_delete').click(function() {
    if ( confirm( 'Are you sure you want to delete this?') ) {
        var p1 = $('#p1').val();
        var p2 = $('#p2').val();
        var p3 = $('#p3').val();
        var param = 'delete_upload_image?p1='+p1+'&p2='+p2+'&p3='+p3;
        $.get(param);

        $('.existingImg').each(function() {
            $('.existingImg', $(this) ).hide();
        });
    }

});

1 个答案:

答案 0 :(得分:0)

在事件处理程序中使用this,这是发生的实际元素事件。然后使用existingImg

遍历closest()

更改

$('.existingImg').each(function() {
     $('.existingImg', $(this) ).hide();
});

$(this).closest('.existingImg').hide();

但请注意,您应该只在成功回调$.get时执行此操作,否则如果ajax请求失败,用户仍会看到元素隐藏并假设一切正常。

$.get(param, function(resp){
    // validate your response here and then hide image
});