ajax是异步的,动态添加的那个方法和ajax在同一级,ajax还没接到返回结果,就已经执行了那个方法了,所以肯定追加不进去,那么我们可以在append追加元素已完成的后边给你想要的元素添加样式
//给id="name"的div添加class="newshopA" 或者newshopA
$(function(){
$.ajax({
type: 'GET',
url: item + "index.php?r=wxproduct/assortment",
data: {"bcId": bcId, "storeId": storeId},
dataType: "json",
success: function (data) {
var parent_div = $('#hostList').empty();
var str = '<div id="name">';
str+=<p>+data.name+'</p></div>';
parent_div.append(str);
if(data.id>0){
$('#name').addClass('newshopA');
}else{
$('#name').addClass('newshopB');
}
}
})
})
这样动态循环的多个li这种数据可能出现只给第一个li里的元素添加了样式
所以可以添加两个带不同class名的div
var parent_div = $('#hostList').empty();
var str = '<div id="name">';
str+=<p>+data.name+'</p>';
if(data.id>0){
</div class="newshopA">
$('#name').addClass('newshopA');
}else{
</div class="newshopB">
$('#name').addClass('newshopB');
}
parent_div.append(str);