jqueryajax div
我有一个这样的联系人列表jqueryajax div,jquery,ajax,html,Jquery,Ajax,Html,我有一个这样的联系人列表 NameOfContact Accept NameOfContact2 Accept ...... 其中Accept是一个链接。 当我单击Accept时,我想发送一个带有联系人id的ajax请求。 当ajax调用返回时,它应该删除Accept链接并在那里显示结果 因此,如果我单击联系人2的“接受”按钮,结果应该是: NameOfContact Accept NameOfContact2 Added ...... Im使用友好的url,例如接受联系人的url为:
NameOfContact Accept
NameOfContact2 Accept
......
其中Accept是一个链接。
当我单击Accept时,我想发送一个带有联系人id的ajax请求。
当ajax调用返回时,它应该删除Accept链接并在那里显示结果
因此,如果我单击联系人2的“接受”按钮,结果应该是:
NameOfContact Accept
NameOfContact2 Added
......
Im使用友好的url,例如接受联系人的url为:
/action/accept/12345
其中12345是联系人id
我的html是这样的,我在服务器端动态生成html,结果应该是这样的:
John
<div id="choice">
<a id="accept" name="accept" href='/action/accept/12345'>Accept</a>
</div>
Kate
<div id="choice">
<a id="accept" name="accept" href='/action/accept/55555'>Accept</a>
</div>
我的问题是,我不知道如何区分许多选择div。我知道我可以
添加像“choice12345”这样的id,但我希望在sendAcceptRequest函数中获取e的父元素href的父元素,即div元素并将结果附加到该div,但我不知道如何获取e的父元素并将结果附加到该div。有什么想法吗?在您的示例中,id属性的值相同。id必须是唯一的,因为它们应该是元素的标识。在您的案例中使用类属性
Kate
<div id="kate" class="choice">
<a class="accept" name="accept" href='/action/accept/55555'>Accept</a>
</div>
$(document).ready(function(){
$('.accept').click(function(e){
e.preventDefault();
sendAcceptRequest(e.target, e);
});
});
function sendAcceptRequest(target, e){
$.post(target,
function(data){
// this needs to be change to unique identify which element you want the html to be inserted
$('.choice').html(data);
}, "html");
}
要扩展darren所说的内容:将id更改为类后,请在sendAcceptRequest函数中添加此选择器,以查找.choice对象,将Accept链接替换为Added。当然,这将是在职位成功之后
$('.choice a[href=' + $(target).attr('href') + ']').parent().html('Added');
好的,我将使用class而不是id。如何获取e的父级?您可以使用$.yourClass.parents,但是有几个元素class='accept'如何指定一个?与您的问题无关的一点是,您不应该使用get请求来修改数据,因为在您的url中,这意味着我可以将浏览器指向/action/accept/1234 url并且数据库将被修改。您应该使用POST谓词进行修改数据的查询
$('.choice a[href=' + $(target).attr('href') + ']').parent().html('Added');