我刚刚开始学习jQuery,我认为除了这个问题,我才能解决这个问题。我有一个用户想要删除的评论页面。我习惯这样做:
$(function() {
$(".commentdeletebutton").click(function() {
$.ajax({
type: "POST",
url: "http://myflashpics.com/process_deletecomment.php",
data: $("#commentdeleteform").serialize(),
success: function() {
// Comment IDS are like this 'comment_123'
var commentId = $(comment_id).val();
var commentDone = "comment_" + commentId;
$(commentDone).fadeOut();
}
});
return false;
});
});
但是因为有多个ID实例,所以它不起作用,也没有发生任何事情。
同样,新手在这里想知道什么是更好的方法。
感谢
库尔顿
答案 0 :(得分:3)
@php,
首先,你不应该在DOM上有多个id,这可能会在解析时导致一些问题。
如果要对它们进行分组,请提供类似
的通用类名classname + "ID"
以后你可以从课堂上记下ID并做你的逻辑
你可以做这样的事情
var className=$(this).attr('class');
var ID = className.replace(/yourclassname(\d+)/, "$1");
答案 1 :(得分:2)
而不是id属性使用类类属性 ID是独一无二的。
答案 2 :(得分:2)
ID应始终是唯一的。考虑为您的ID添加更多内容以使其唯一。
答案 3 :(得分:2)
以某种方式与@kobe说的相关,我认为你最好的方法是根据前缀(如myComment-)和DB中的id生成这些ID。这样你就会以myComment-1,myComment-2,...,myComment-n标识的元素结束。
然后,当您为每个以“myComment”开头的元素使用选择器时(查看jQuery文档中的选择器文档)并将其设置为“click”处理程序。访问$(this)应该为您提供单击的元素,您可以获取ID,以编程方式删除“comment-”部分,然后再次检索或执行操作或获取原始ID的必需属性。
希望这有帮助。
答案 4 :(得分:1)
无论如何,我不清楚comment_id
来自何处。
如果$(".commentdeletebutton")
位于某个容器内,或者您需要fadeOut的元素旁边,则可以使用一些.parent()
或.next()
选择器,而无需任何ID。
PS:您似乎没有告诉http://myflashpics.com/process_deletecomment.php
它必须删除哪条评论。