jQuery - 将一个列表项替换为第一个列表项内元素中的另一个列表项
所以我有一个看起来像
...
<li class="buried">
<div>
<a class="show">show this comment</a>
</div>
</li>
<li>
<div>
bla blah..
</div>
</li>
....
javascript 的评论列表:
$(".buried").click(function(){
$.ajax({
...
success: function(data){
alert(data);
// here I want to replace the li.buried with data
}
});
return false;
});
我怎样才能做到这一点?
我尝试使用 $(this).parents(".buried").replace(data)
但它不起作用:(
so I have a list of comments that looks like
...
<li class="buried">
<div>
<a class="show">show this comment</a>
</div>
</li>
<li>
<div>
bla blah..
</div>
</li>
....
the javascript:
$(".buried").click(function(){
$.ajax({
...
success: function(data){
alert(data);
// here I want to replace the li.buried with data
}
});
return false;
});
How can I do this?
I tried with $(this).parents(".buried").replace(data)
and it's not working :(
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
将 AJAX 调用的
context
参数设置为this
:由于
click
处理程序位于上,在处理程序中,
this
将引用接收事件的我假设返回的
data
是另一个因为这是唯一有效的替换。如果您确实想替换其内容,请执行
$(this).html( data )
。请注意,如果您确实替换
本身,您将丢失该项目的
点击
处理程序。如果您不想丢失它,您可能需要将click
分配为本身的
delegate
。Set the
context
parameter of the AJAX call tothis
:Since the
click
handler is on the<li>
, in the handler,this
will refer to the<li>
that received the event.I assume the
data
returned is another<li>
since that's the only valid replacement. If you actually wanted to replace its content, then do$(this).html( data )
.Be aware that if you do replace the
<li>
itself, you'll be losing yourclick
handler for that item. If you don't want to lose it, you may want to assign theclick
as adelegate
on the<ul>
itself.