Javascript 如何在单击时获取具有特定ID的div的类?

Javascript 如何在单击时获取具有特定ID的div的类?,javascript,jquery,css,Javascript,Jquery,Css,我试图在单击时获取具有特定id的每个div的类 这是我试过的 $("#chng").click(function() { var myClass = $(this).attr("class"); alert(myClass); }); 这只适用于第一个div,而不适用于其他div 这是HTML <div id="chng" class="a"></div> <br/> <div id="chng" class="b"></div

我试图在单击时获取具有特定id的每个div的类

这是我试过的

$("#chng").click(function() {
   var myClass = $(this).attr("class");
   alert(myClass);
});
这只适用于第一个div,而不适用于其他div

这是HTML

<div id="chng" class="a"></div>
<br/>
<div id="chng" class="b"></div>
<br/>
<div id="chng" class="c"></div>
<br/>
<div id="chng" class="d"></div>

也许您应该按类属性检测单击元素,并获取单击的div的id。

因为id应该是唯一的,并且不能对多个元素使用相同的id。这就是为什么它只适用于第一组,而不适用于其他组

要获得背景图像,可以使用$this.css'background-image'

例如:

HTML

CSS

换个方向

让id成为你的类,让你的类成为你的id。 ID必须是唯一的,并且您的类不必是唯一的

HTML:


ID在文档中必须是唯一的。

若要按ID和类选择内容,需要使用selector语句

$("#id.classname").click(foo);
或者在这种情况下

$("#chng.a(or any other class)").click(foo);
-jsfiddle与大意相同的东西

编辑2:


但正如前面所述,创建唯一的ID更容易。

ID应该是唯一的,所以您应该交换类名和ID,使其看起来像这样:

<div id="a" class="chng"></div>
<br/>
<div id="b" class="chng"></div>
<br/>
<div id="c" class="chng"></div>
<br/>
<div id="d" class="chng"></div>

这里有一个简单的修改版本的代码:

Id不能在同一页中出现两次,因此您可以使用其他选项,例如name或rel

$("div[rel=chng]").click(function() {
   var myClass = $(this).attr("class");
   alert(myClass);
});
在html代码中将id更改为rel

<div rel="chng" class="a"></div>
<br/>
<div rel="chng" class="b"></div>
<br/>
<div rel="chng" class="c"></div>
<br/>
<div rel="chng" class="d"></div>

希望它能工作

ID必须是唯一的。ID必须是唯一的。如前所述,ID必须是唯一的,如果不唯一,则DOM将只返回第一个匹配项。这里的问题是他使用了多个相同的ID。他知道。。。他指出OP是反向执行的。因此,类必须是唯一的,每个元素的id都不同。@RobertHarvey重读一遍,我想我现在明白他的意思了,但这个答案可以这样理解,即相同的id将保留在标记中。或者只是将chng添加为一个类,并保留当前的a、b、c、d,班级same@justnS巴阿。太混乱了。请使用此。id:-P无需检查属性?为什么不直接上课?!背景中的一些灯箱重新发光可能:
$(".chng").click(function() {
   var myID = this.id;
   alert(myID);
});
$("#id.classname").click(foo);
$("#chng.a(or any other class)").click(foo);
<div id="a" class="chng"></div>
<br/>
<div id="b" class="chng"></div>
<br/>
<div id="c" class="chng"></div>
<br/>
<div id="d" class="chng"></div>
$(".chng").click(function() {
   var myClass = $(this).attr("id");
   alert(myClass);
});
$("div[rel=chng]").click(function() {
   var myClass = $(this).attr("class");
   alert(myClass);
});
<div rel="chng" class="a"></div>
<br/>
<div rel="chng" class="b"></div>
<br/>
<div rel="chng" class="c"></div>
<br/>
<div rel="chng" class="d"></div>