我将生成多个任务行,每个任务行使用 <tr>
标签。现在,可以通过单击 span
元素将每个任务标记为已完成状态,并使用 ajax 请求实现该功能。
以下是 HTML 代码:
<table>
<tr>
<td>#1</td>
<td><span class="icon-complete-a to-heal"></span></td>
</tr>
<tr>
<td>#2</td>
<td><span class="icon-complete-a to-heal"></span></td>
</tr>
<tr>
<td>#3</td>
<td><span class="icon-complete-a to-heam"></span></td>
</tr>
</table>
现在,当我点击某个span元素时,只有该元素应更改类。
我使用以下代码更改类:
$(".to-heal").addClass("completed-task");
但是所有的span元素都被添加了completed类。
所以我尝试了以下代码:
$(this).find(".to-heal").addClass("completed-task");
但是这样做不起作用。
需要帮助吗?
更新
我尝试使用 $(this).addClass("completed-task");
以下是我使用的完整ajax请求:
$(".to-heal").click(function() {
var task = $(this).attr("data-task");
$.ajax({
type: "post",
url: "assets/js/ajax/mark-as-complete.php",
data: { 'task': task },
success: function() {
$(this).addClass("completed-task");
$(".completed-task").click(function() {
var task = $(this).attr("data-task");
$.ajax({
type: "post",
url: "assets/js/ajax/mark-as-incomplete.php",
data: { 'task': task },
success: function() {
$(this).removeClass("completed-task");
}
});
});
}
});
});
很抱歉,我的标记类不再相同,因为我使用了虚拟类进行快速解释。对此感到抱歉...
谢谢你的理解
$.ajax
之前放置var _this = this;
,然后使用$(_this).removeClass(...)
。 - rdiz