0

我试图在单击时获取具有特定 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>

我有一个提示,可以在这里使用 each() 函数,但我不知道如何使用它。请为此提供解决方案。还有可能在点击时获取我分配给这些 div 的背景图像的 url 吗?

background: url(bg1.jpg) no-repeat;
4

7 回答 7

6

Switch it around.

Make the id's your classes and your classes your ids.
IDs must be unique and your classes do not have to be.

HTML:

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

JS:

$(".chng").click(function() {
   var myID = this.id;
   alert(myID);
});
于 2013-07-12T16:39:29.830 回答
2

Maybe you should detect click on elements by class attribute, and get the id's of the divs clicked.

于 2013-07-12T16:38:47.967 回答
1

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>

那么我会在 JQuery 中做的是:

$(".chng").click(function() {
   var myClass = $(this).attr("id");
   alert(myClass);
});

这是我修改后的代码版本的简单小提琴:http: //jsfiddle.net/cVYVf/4/

于 2013-07-12T16:41:48.447 回答
0

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>

希望它应该工作

于 2013-07-12T16:45:12.297 回答
0

Because id should be unique and you can't use same id for multiple elements. That's why it's working only on first div and not others.

To get background image you can use $(this).css('background-image')

Example:

HTML

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

JS

$('.chng').click(function() {
    alert($(this).css('background-image').replace('url("', '').replace('")', ''));
});

CSS

.chng {height: 100px;}
#a {background: #ccc url(bg1.jpg) no-repeat;}
#b {background: red url(bg2.jpg) no-repeat;}
#c {background: blue url(bg3.jpg) no-repeat;}
#d {background: green url(bg4.jpg) no-repeat;}

Demo Link

于 2013-07-12T16:38:57.193 回答
0

The ID must be unique in a document.

于 2013-07-12T16:39:29.840 回答
0

要通过 ID 和类选择某些东西,您需要使用 selector 语句。

$("#id.classname").click(foo);

或者在这种情况下

$("#chng.a(or any other class)").click(foo);

http://jsfiddle.net/fzrTN/ - jsfiddle 有一些效果

编辑2:

但正如已经说过的,制作唯一 ID 会更容易。

于 2013-07-12T16:41:21.897 回答