jQuery 父级更改内部 HTML
到目前为止我得到了这个:
$('.event-tools a').click(function()
{
var status = $(this).attr('id');
var id = $(this).parent().attr('id');
$.ajax({
type: "GET",
url: "http://localhost:8888/update/test.php",
data: "rsvp=" + status + '&id=' + id,
success: function()
{
$(this).parent().html(status);
//alert(status);
},
error: function()
{
alert('failz');
}
});
});
这样:
<span class="rsvp" id="1">
<a href="#" class="rsvp" id="Attending">Attending</a>
<a href="#" class="rsvp" id="Maybe Attending">Maybe Attending</a>
<a href="#" class="rsvp" id="Not Attending">Not Attending</a>
</span>
当我单击其中一个并使用 alert()
时,它会通过提示警报框来工作,但是,当我使用 $(this) 时.parent().html(status);
在 success:
事件上,它不会使用 status
更改 HTML...
I got this so far:
$('.event-tools a').click(function()
{
var status = $(this).attr('id');
var id = $(this).parent().attr('id');
$.ajax({
type: "GET",
url: "http://localhost:8888/update/test.php",
data: "rsvp=" + status + '&id=' + id,
success: function()
{
$(this).parent().html(status);
//alert(status);
},
error: function()
{
alert('failz');
}
});
});
With this:
<span class="rsvp" id="1">
<a href="#" class="rsvp" id="Attending">Attending</a>
<a href="#" class="rsvp" id="Maybe Attending">Maybe Attending</a>
<a href="#" class="rsvp" id="Not Attending">Not Attending</a>
</span>
When I click on one of them and use the alert()
it works by prompting the alert box, however, when I use the $(this).parent().html(status);
on the success:
event, it doesn't change the HTML with the status
...
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
success 函数内部的
this
与外部的作用域不同,因为 JavaScript 具有函数作用域。您需要执行类似的操作来保留外部函数的this
的原始值:或者,您可以使用 jQuery 的
.proxy()
-方法:this
inside your success-function does not have the same scope as outside of it, since JavaScript has function scope. You need to do something like this to preserve the original value of the outer function'sthis
:Alternatively, you could use jQuery's
.proxy()
-method:试试这个
JS:
HTML:
try this
JS:
HTML: