如何追加所有相同的类jquery?

时间:2015-06-29 17:57:57

标签: javascript jquery html

在我的网站上,我想将一个div添加到一个类下面,我有很多同一个类。该网站正在销售T恤,每件商品都有.color类。每次刷新页面时,它只附加到一个项目,当我转到第二个项目时,div不会附加。 #myshop正在从其他网站加载,因此我需要使用append来添加消息。我使用setTimeout的原因是因为#myshop是在页面加载后加载的,所以我必须延迟它。您可以在我的网址www.sayhitoworld.com上查看,点击任何项目,您将看到颜色下面的消息,返回,然后单击另一个项目,该消息将不再附加。感谢你的时间。

jQuery('#myshop').one('click', function(){
	setTimeout(append_color, 1000);
});

function append_color(){
	jQuery('.color').append("<div id='append_color' >Note: If the T-shirt had the same color as the character's hair or body, you won't see the shape, still cool though.</div>");
	
}

3 个答案:

答案 0 :(得分:3)

这些商品是否在同一页面上?如果是这样,这个div只会附加到第一个项目,因为div有一个ID。 ID必须是唯一的,因此每页只能存在一个名为append_color的div。为什么不追加一个名为append_color的类,看看它是否适合你。

function append_color(){
    $('.color').each(function(){
        $(this).append("<div class='append_color' >Note: If the T-shirt had the same color as the character's hair or body, you won't see the shape, still cool though.</div>");
    });
}

答案 1 :(得分:0)

尝试:

$('.color').each(function(i, obj) {
    $(obj).append(<your_template>);
});

答案 2 :(得分:0)

尝试切换到on方法,而不是one(如果可能),这就是函数只触发一次的原因。来自文档:

  

.one(events [,data],handler):
  将处理程序附加到元素的事件。处理程序已执行   每个事件类型每个元素最多一次

尝试这样的事情:

jQuery(document).on('click', '#myshop', function(){
    setTimeout(append_color, 1000);
});

function append_color(){
    jQuery('.color').append("<div id='append_color' >Note: If the T-shirt had the same color as the character's hair or body, you won't see the shape, still cool though.</div>");  
}