0

我有一段代码在另一个元素悬停时插入下面的这段代码。

<div class="star" id="1">
<div class="star" id="2">
<div class="star" id="3">
<div class="star" id="4">
<div class="star" id="5">
</div>
</div>
</div>
</div>
</div>

我要做的就是通过javascript检索每个DIV的ID:

$(document).ready(function() {

$('.star').on(function(e){

    e.stopPropagation();
    var rating = $(this).attr('id');

    alert(rating);
});

});

我已经尝试了很多方法来实现这一点,这是我尝试过的最新方法,但我仍然没有运气!我将不胜感激任何帮助

4

3 回答 3

1

添加上述 div 时触发事件。

var counter = 0;
$(someelement).on("mouseenter",function(){
    counter++;
    $('<div class="star" id="' + counter + '" />').appendTo(".star:last").trigger("staradded");
})

$(document).on("staradded",".star",function(e) {
    alert(this.id);
});

或者更好的是,跳过该事件。

var counter = 0;
$(someelement).on("mouseenter",function(){
    counter++;
    $('<div class="star" id="' + counter + '" />').appendTo(".star:last");
    alert(counter);
})
于 2012-12-22T19:57:56.447 回答
0

你有wrongon 的语法,因为你不是telling你想要绑定的事件。绑定所需的事件后,例如单击,您可以使用 map 函数获取所有以逗号分隔的elements具有 class的 id star

现场演示

$(document).on('click', '.star', function(e) {
    e.stopPropagation();
    ids = $('.star').map(function() {
        return this.id;
    }).get().join();
    alert(ids);
});

您需要使用 each 来遍历所有元素。

$('.star').each(function(){           
    var rating = $(this).attr('id');    
    alert(rating);
});

​
于 2012-12-22T19:53:59.653 回答
0

我会使用“livequery”插件 - https://github.com/brandonaaron/livequery

如果我理解正确,您需要像旧功能“live”这样的东西,因为您想观看所有新的“.star”元素。

在这种情况下,您只需使用以下代码:

 $('.star').livequery('click',function(e){});

你可以在那里找到简单的例子 - http://jsfiddle.net/WEr5J/11/

于 2012-12-22T20:12:20.770 回答