Raf*_*fay 0 javascript php ajax jquery
问题
成功进行AJAX调用后,我想更新页面上的元素.但是,它没有更新.
代码[Javascript]
$(function()
{
$(".upvote").click(function()
{
var id = $(this).parent().find("input").val();
$.ajax(
{
type: "GET",
url: "process.php",
data: "id=" + id +"&f=u",
success: function(results)
{
$(this).parent().parent().find("span.ups").empty().append("Upvotes: " + results);
console.log(results);
}
});
return false;
});
});
Run Code Online (Sandbox Code Playgroud)
代码[HTML]
此代码由PHP生成.
<div class="post">
<h2>$title</h2>
<p>$body</p>
<span class="ups">Upvotes: $upvotes</span>
<span class="downs">Downvotes: $downvotes</span>
<span class="total">Total votes: $t_votes</span>
<div id="links">
<input type="hidden" id="id" name="id" value="$id">
<a href="process.php?id=$id&f=u" class="upvote"><button>Upvote!</button></a>
<a href="process.php?id=$id&f=d" class="downvote"><button>Downvote!</button></a>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
由PHP返回
更新的upvotes数量.
this不是你想的那样.它的值取决于它出现的函数是如何被调用的(并且当它在一个不同的函数内时会改变).
我不知道它在jQuery成功回调中会是什么,但它不会是一个HTML元素.
如果你想让它成为被点击的元素,那么你需要将它存储在this那个元素中.
$(".upvote").click(function() {
var clicked_element = this;
Run Code Online (Sandbox Code Playgroud)
然后你可以在以后使用该变量:
$(clicked_element).parent().etc
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1621 次 |
| 最近记录: |