0

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

4

3 回答 3

1

您的代码似乎试图为每个 div 找到一个唯一标识符。如果这是您要尝试做的,那么您可以将 class 属性的值与 id 属性的值进行切换。

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 属性可以用于多个元素。

于 2012-12-22T16:33:01.840 回答
1

idshtml 元素应该是唯一的。分配唯一的 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有时您一定会使用这种错误的模式,如果是这样,您就可以这样做。

现场演示

$('[id=star]').click(function(e){

    e.stopPropagation();
    var class_name = $(this).attr('class');
    alert(class_name);
});​
于 2012-12-22T16:36:10.517 回答
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'));
    });​
});

请检查这个小提琴,这可能是你正在寻找的东西

于 2012-12-22T16:48:28.890 回答