Ajax调用只传递第一个元素

时间:2016-07-07 18:08:02

标签: javascript php jquery html ajax

我输出的多个动态链接使用相同的< a>。我的AJAX调用很好地加载了所有链接的内容。但是显示ajax内容的新div仅在单击其他链接时输出第一个链接的id。我正在使用它来查看控制台中的id console.log($('[data-taskid]').first().attr('data-id'));如何将链接的id传递给我的ajax视图?谢谢你们!

<div id="content"></div>

PHP

$string .= '<a class="hrefid" data-id="'.$name["id"].'" href="#link">'.$name["name"].'</a>'.

Jquery的

$('.hrefid').on('click', function (e) {
    var load = $(e.target).attr("href");
    if(load == "#link") {
        $.ajax({
            type: 'post',
            url: "/page/test/"+$(this).parents("[data-id]").attr("data-id"),
            complete: function (event) {
                $("#content").contents().remove();
                $("#content").append(event.responseText);


            }
        });
    }
});

1 个答案:

答案 0 :(得分:1)

请检查我没有使用$(this)作为参考,$(this)引用get anaged一旦你在ajax中使用$(this),它指的是ajax而不是主选择器。

       $('.hrefid').on('click', function (e) {
              var $this = $(this);
              var load = $this.attr("href");
              if(load == "#link") {
                    $.ajax({
                         type: 'post',
                         url: "/page/test/"+ $this.attr("data-id"),
                         complete: function (event) {
                             $("#content").contents().remove();
                             $("#content").append(event.responseText);
                         }
                    });
              }
        });