$(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,除了我需要给这个div同样的id ???
答案 0 :(得分:10)
ID是唯一的,因此您不能拥有两个具有相同ID的元素。也许你打算使用课程?
将 divs 上的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)
});
});
});
答案 1 :(得分:0)
您可以根据需要使用相同的类名作为图像。但是,您的页面上只能有一个给定id
的图片。 id对于元素是唯一的。
答案 2 :(得分:0)
您需要做的是将它们更改为类。
因此,而不是id="peoplelayer"
,更改为class="peoplelayer"
,然后您就可以这样写。我做了一些改变,我认为这会按照你想要的方式工作。
$('.peoplelayer').click(function(){
var str = $(this).text();
$('.peoplelayer').fadeTo(500,0.6);
$(this).fadeOut(500);
alert(str);
});
答案 3 :(得分:0)
您的问题是事件处理程序中的每个问题(以及使用您应该使用类的ID)。将元素更改为class="peoplelayer
,然后您只需编写:
$(".peoplelayer").click(function(){
var str = $(this).text();
$(".peoplelayer").fadeOut(500);
alert(str);
});
click函数会将相同的单击处理程序附加到具有peoplelayer
类的每个元素,因此您在单击处理程序中执行的each
是不必要的,并导致每个元素的文本每次点击任何元素时显示。
答案 4 :(得分:0)
好吧,你可以使用类并在它们上使用js。
但您可以选择与$("div[id='peoplelayer']")
相同ID的div。
附:给两个元素赋予相同的id不是一个好习惯。
示例fiddle