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の一意の識別子を見つけようとしているようです。それがあなたがやろうとしていることであるなら、あなたはクラス属性の値を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

ofhtmlids要素は一意である必要があります。一意の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 に答える