从href中获取id并包含在jquery中

时间:2014-09-30 03:44:42

标签: jquery html

我需要获取一个href的id,并且包含在javascript中,我无法正确使用它。 我想要做的是在delete_page.php中获取所选的id,这样我就可以使用它更新记录了,为了工作,我需要在javascript中delete_page.php显示delete_page.php? id =(),这就是我需要做的,如果有人有一个更容易的方法,那就太棒了!

这是我的代码

$(document).ready(function()
{
    $('a.delete').click(function()
    {
        if (confirm("Are you sure you want to delete this row?"))
        {
            var id = $(this).parent().parent().attr('id');
            var data = 'id=' + id ;
            var parent = $(this).parent().parent();

            $.ajax(
            {
                   type: "POST",
                   url: "delete_page.php?id=",
                   data: data,
                   cache: false,

                   success: function()
                   {
                        parent.fadeOut('slow', function() {$(this).remove();});
                   }
             });                
        }
    });


});

 <a href="#" class="delete" id="post-<?php echo $pid; ?>" name="delete_id">Erase page</a>

我需要在delete_page.php之后的脚本中的href中的id?id =&#34;在这里,任何答案都会很棒谢谢

我也尝试过 删除

 $(document).ready(function () {
$('a.delete').click(function (e) {
    e.preventDefault();
    if (confirm("Are you sure you want to delete this row?")) {
        var id = $(this).attr('id').replace(/post-/, ''),
            parent = $(this).parent();

        $.post("delete_page.php", {
            "id": id
          })
            .done(function (data) {
            parent.fadeOut('slow', function () {
                $(this).remove();
            });
        });
    }
});
});

但是在消息之后,脚本的其余部分不起作用,delete_page.php和淡入淡出.. 这是小提琴 http://jsfiddle.net/dqn61zgv/

我想要做的是在delete_page.php中获取所选的id,这样我就可以使用它更新记录了,为了工作我需要在javascript中delete_page.php显示delete_page .php?id =(),这就是我需要做的事情,如果有人有更简单的方法,那就太棒了!

2 个答案:

答案 0 :(得分:0)

如果您在点击的a标记中有id attr,那么您不需要使用

  var id = $(this).parent().parent().attr('id');

得到它,只需使用

  var id = $(this).attr('id');

我会像这样解决这个问题

<强> HTML

<a class="delete" href="#" id="post-8">Delete</a>

<强> JS

$(document).ready(function () {
    $('a.delete').click(function (e) {
        e.preventDefault();
        if (confirm("Are you sure you want to delete this row?")) {
            var id = $(this).attr('id').replace(/post-/, ''),
                parent = $(this);

            $.post("delete_page.php", {"id": id })
             .done(function (data) { //am using done callback, you can try always to see script works and fade the a tag
                parent.fadeOut('slow', function () { parent.remove(); });
            });
        }
    });
});

<强> PHP

if( isset($_POST['id']) && !empty($_POST['id']) ) {
    $id = (int) $_POST['id'];

    //Update your db table 
    .....

    //echo result after update
    echo "success";
}

这里是working fiddle

确保您的php脚本delete_page.php存在,并在流程

后返回200 OK响应

我已更新代码,请立即查看其工作

答案 1 :(得分:0)

a.delete指的是具有类<a>的锚标记.delete的所有实例。

根据您的click();方法判断:

$('a.delete').click(function(){..

您应该使用$(this).attr("id")而不是$(this).parent().parent().attr("id");,因为click方法已绑定到所述选择器。

除非您的HTML另有说明。请告诉我们。