ID未定义'使用.each()

时间:2014-12-31 01:48:34

标签: jquery

为什么此警报“未定义”而不是链接ID?我确实得到'未定义'5次,所以我知道它正确地循环它们,但它没有显示像'Cripple'等名称。

$(function () {
    $("#divPlayerActions").children("a").each(function () {
       var e = $(this);
       alert(e.id);      // undefined ?
    });
}

<div id="divPlayerActions" class="col-md-6 text-center">
   <a href="#" class="action" data-cd="0" data-cast="0" id='Cripple'> <img src="/Content/cripple.png" /> </a>
   <a href="#" class="action" data-cd="0" data-cast="0" id='GroundSlam'> <img src="/Content/ground_slam.png" /> </a>
   <a href="#" class="action" data-cd="0" data-cast="0" id='HealingStar'> <img src="/Content/healing_star.png" /> </a>
   <a href="#" class="action" data-cd="0" data-cast="0" id='LighteningStrike'> <img src="/Content/lightening_strike.png" /> </a>
   <a href="#" class="action" data-cd="0" data-cast="0" id='PoisonBite'> <img src="/Content/poison_bite.png" /> </a>
</div>

3 个答案:

答案 0 :(得分:3)

您需要从jQuery对象中撤消本机JS DOM元素对象:

alert( e[0].id );

或只是做

alert( this.id );

或使用jQuery:

alert( e.prop("id") ); /*    this one */
alert( e.get(0).id; ); /* or this one */
alert( e.attr("id") ); /* or this one */

或通过jQuery this参数传递.each(index, element)目标标识符:

$("#divPlayerActions").children("a").each(function (i, e) {
    alert(e.id); // Cripple // GroundSlam // HealingStar .....
});

答案 1 :(得分:1)

如果你想用jQuery获取这个值,只需将其作为属性抓取:

e.attr('id');

答案 2 :(得分:1)

尝试使用此代码检索元素ID

   $(function () {
        $("#divPlayerActions").children("a").each(function () {
           var e = $(this);
           alert( e.prop("id"));  
        });
    }