如何使用相同的ID检测单击的div文本

$(document).ready(function(){ $('#peoplelayer').click(function(){ $("#peoplelayer").each(function(){ $("#peoplelayer").fadeOut(500); var str = $(this).text(); alert(str); //$("#peoplelayer").fadeTo(500,0.6); }); }); }); 

这是代码,我对所有div使用相同的id“#peoplelayer”,当我点击其中一个时,它会以相同的id警告这个div的所有文本

我怎么能防止这个问题,因为我需要提醒只有被点击的div,除了我需要给这个divs相同的id ???

ID是唯一的,因此您不能拥有两个具有相同ID的元素。 也许你打算使用课程?

div上的id = 'peoplelayer'更改为class = 'peoplelayer' ,您可以使用以下代码:

 $(document).ready(function(){ $('.peoplelayer').click(function(){ $(this).each(function(){ $(this).fadeOut(500); var str = $(this).text(); alert(str); //$(".peoplelayer").fadeTo(500,0.6); (I know it's commented, but just in case) }); }); }); 

您可以根据需要使用相同的类名作为图像。 但是,您的页面上只能有一个具有给定id图像。 id对于元素是唯一的。

您需要做的是将它们更改为类。

所以不是id="peoplelayer" ,而是改为class="peoplelayer" ,然后就可以这样写了。 我做了一些改变,我认为这会有你想要的效果。

 $('.peoplelayer').click(function(){ var str = $(this).text(); $('.peoplelayer').fadeTo(500,0.6); $(this).fadeOut(500); alert(str); }); 

您的问题是事件处理程序中的每个问题(以及使用您应该使用类的ID)。 将元素更改为class="peoplelayer然后您可以简单地写:

 $(".peoplelayer").click(function(){ var str = $(this).text(); $(".peoplelayer").fadeOut(500); alert(str); }); 

click函数将使用一个peoplelayer类将相同的单击处理程序附加到每个元素,因此您在单击处理程序中执行的每个元素都是不必要的,并且每次单击任何元素时都会显示每个元素的文本。

好吧,你可以使用类并在它们上使用js。 但是你可以选择与$("div[id='peoplelayer']")相同id的$("div[id='peoplelayer']")

PS给两个元素赋予相同的id不是一个好习惯。 一个例子小提琴