同一页面上有多个jQuery

时间:2011-04-24 19:40:18

标签: javascript jquery

我刚刚开始学习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实例,所以它不起作用,也没有发生任何事情。

同样,新手在这里想知道什么是更好的方法。

感谢
库尔顿

5 个答案:

答案 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它必须删除哪条评论。