【问题标题】:jquery get generated id with the same classjquery获取具有相同类的生成ID
【发布时间】:2011-05-01 11:37:24
【问题描述】:

这是我的代码。

//生成一个id $(".slide_img_a").each(function(){ $(this).attr("id","img"+(Math.round(Math.random()*100))) }); // 获取标识 var img_id = $(".slide_img_a").attr("id"); // 提醒 id $(".slide_img_a img").hover(function(){ 警报(img_id); });

问题是我有 5 张具有相同类别和随机 id 的图像。当我将图像悬停时,结果是他只能提醒第一张图像的 id。我想做的是,当我将它们悬停时,它们会提醒他们自己的 id

【问题讨论】:

  • 你不应该有重复的 id s,你的方法有时会创建重复的 id s。

标签: jquery


【解决方案1】:

您可以在事件处理程序中使用this 并通过这种方式找到您想要的内容,如下所示:

$(".slide_img_a img").hover(function(){
  alert($(this).closest(".slide_img_a").attr("id"));
});

这会获取您在悬停时悬停的图像,然后使用 .closest() 上升到 .slide_img_a 容器,那个是我们从中提取 ID 的元素。


对于 1.3 之前的 jQuery 版本(因为我们知道 <a> 没有该类),您可以这样做:

$(".slide_img_a img").hover(function(){
  alert($(this).parents(".slide_img_a:first").attr("id"));
});

【讨论】:

  • $(".slide_img_a").closest 不是函数
  • @Jordan - 你可以使用 .parents('.slide_img_a:first') 插入旧版本的 jquery。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-04-24
  • 2015-02-17
  • 1970-01-01
  • 1970-01-01
  • 2016-03-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多