找不到这个事件?

时间:2013-01-30 16:53:18

标签: javascript jquery

我有一个类型为aud的多个div。 div没有ID。我无法执行单击功能,然后使用(this),因为它必须在页面加载。

每个div都有一个名为file的属性,我将其分配给变量,然后将其放入html5音频标记中。我需要SRC对于div来说是唯一的。

    var item = $('.type-aud');
        path = item.attr('file'),
        html = '<audio controls><source src="'+path+'" type="audio/mpeg" class="audio"></audio>',
        playerClass = item.find('.audio');

    if (!playerClass.hasClass('audio')) {
        item.append(html);          
    }

3 个答案:

答案 0 :(得分:4)

只需使用.each(),否则请使用.click()

$('.type-aud').each(function ()
{
    var item = $(this);
    // audio tag business here
});

答案 1 :(得分:1)

$('.type-aud').each(function(i,ele) {
    var item = $(ele),
        path = item.attr('file'),
        html = '<audio controls><source src="'+path+'" type="audio/mpeg" class="audio"></audio>',
        playerClass = item.find('.audio');

    if (!playerClass.is('.audio')) item.append(html);
});

答案 2 :(得分:1)

您可以循环所有具有类.type-aud的div,然后选择其文件属性

$('.type-aud').each(function() {
 var item = $(this);
        path = item.attr('file'),
        html = '<audio controls><source src="'+path+'" type="audio/mpeg" class="audio"></audio>',
        playerClass = item.find('.audio');

    if (!playerClass.hasClass('audio')) {
        item.append(html);          
    }
});