单击获取嵌套的DIV类

时间:2012-12-22 16:30:15

标签: javascript jquery html

这是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中获取课程。有办法做到这一点吗?

3 个答案:

答案 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类对它们进行分组。

Live Demo

<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,这可能是您正在寻找的内容