我遇到了jquery中的.closest()方法问题。这是我遇到麻烦的html和jquery的一个例子。
HTML ERB的片段
<% @posts.each do |post| %>
<tbody>
<tr>
<td><%= post.title %></td>
<td><%= post.description %></td>
<td><%= post.episodeNum %></td>
<td><%= post.highDef %></td>
<td>
<%= link_to 'Show', post, :class => 'btn btn-info' %>
<%= link_to 'Edit', edit_post_path(post), :class => 'btn btn-primary' %>
<%= link_to 'Destroy', post, :class => 'btn btn-danger', confirm: 'Are you sure?', method: :delete %>
</td>
<td>
<b>Votes: </b>
<p class="current_vote"><font color=#1C1C1C>
<%= post.upvotes.size - post.downvotes.size %>
</p></font>
<button type="button" class="buttonUp btn" id="<%= post.id %>">Increase Vote</button>
<button type="button" class="buttonDown btn" id="<%= post.id %>">Decrease Vote</button>
</td>
</tr>
<% end %>
JQuery片段
$(document).ready(function() {
$('.buttonUp').bind('click', function() {
$.ajax({
type: "POST",
url: "/posts/increaseVote?id=" + $(this).attr("id"),
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function(data) {
$(this).closest('p').text(data);
}
});
});
$('.buttonDown').bind('click', function() {
$.ajax({
type: "POST",
url: "/posts/decreaseVote?id=" + $(this).attr("id"),
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function(data) {
$(this).closest('p').text(data);
}
});
});
});
另外,我正确地接收了我的json,在我的测试中,我的json数据callbacksimply包含一个整数。