这是HTML:
<div id="star" class="star1">
<div id="star" class="star2">
<div id="star" class="star3">
<div id="star" class="star4">
<div id="star" class="star5">
</div>
</div>
</div>
</div>
</div>
和Javascript:
$(document).ready(function() {
$('#star').click(function(e){
e.stopPropagation();
var class_name = $(this).attr('class');
alert(class_name);
});
});
我遇到的问题是我只得到第一个父div的类。 我希望从点击的div中获取课程。有办法做到这一点吗?
答案 0 :(得分:1)
您的代码似乎在尝试为每个div找到唯一的标识符。如果您正在尝试这样做,那么您可以使用id属性的值切换class属性的值。
<强> HTML 强>
<div id="star1" class="star">
</div>
<强>的JavaScript 强>
$(document).ready(function() {
$('.star').click(function(e){
e.stopPropagation();
var id = $(this).attr('id');
alert(id);
});
});
在HTML中,元素的ID是唯一的,而class属性可以用于多个元素。
答案 1 :(得分:1)
html元素的ids
应该是唯一的。分配唯一ID并使用类选择器并指定common
类对它们进行分组。
<div id="star1" class="star">1
<div id="star2" class="star">2
<div id="star3" class="star">3
<div id="star4" class="star">4
<div id="star4" class="star">5
</div>
</div>
</div>
</div>
</div>
$('.star').click(function(e){
e.stopPropagation();
var id = $(this).attr('id');
alert(id);
});
approach you are using is not correct but
有时候你必然会使用这种错误的模式,如果是这样你可以这样做。
<强> Live Demo 强>
$('[id=star]').click(function(e){
e.stopPropagation();
var class_name = $(this).attr('class');
alert(class_name);
});
答案 2 :(得分:0)
首先请记住这一点,您不会对多个标记使用相同的ID 。
<div id="star1" class="star">1
<div id="star2" class="star">2
<div id="star3" class="star">3
<div id="star4" class="star">4
<div id="star5" class="star">5
</div>
</div>
</div>
</div>
</div>
<script>
jQuery(function($){
$('.star').click(function(e) {
e.stopPropagation();
$('#out').html("My Class: "+$(this).attr('class')+ " My Id:" + $(this).attr('id'));
});
});
请检查此fiddle,这可能是您正在寻找的内容