Jquery 无法正确地向动态创建的按钮添加样式
我正在为名为“ordernow”的动态创建按钮动态添加样式 根据状态字段,我将向按钮添加样式 按要求 如果状态为1,则类应为Jquery 无法正确地向动态创建的按钮添加样式,jquery,Jquery,我正在为名为“ordernow”的动态创建按钮动态添加样式 根据状态字段,我将向按钮添加样式 按要求 如果状态为1,则类应为 btn-success 如果状态为0,则类必须为 btn-mrn 我试过这种方法 for (var i = 0; i < response.length; i++) { var classstyle = ""; if(response[i].status==1) { classstyle = "success"; }
btn-success
如果状态为0,则类必须为
btn-mrn
我试过这种方法
for (var i = 0; i < response.length; i++) {
var classstyle = "";
if(response[i].status==1) {
classstyle = "success";
} else {
classstyle = "mrn";
}
var $ordernow= $('<input/>').attr({ type: 'button',name:'btn1', class:'btn btn-'+classstyle+'', value:'Order Now', style: 'float:right'});
divhtml.append('<li><h6>' + response[i].area + '</h6><p>' + response[i].address + '</p></li>');
}
for(变量i=0;i'+response[i].area+''+response[i].address+'');
}
但我观察到,无论最后一种样式是什么,都会添加到所有按钮中
有谁能帮我解决这个问题吗?正如我在一篇评论中所说,您在循环之外添加了
$ordernow
,因此您只添加了在上一次循环中构造的按钮。要修复此问题,请尝试:
for (var i = 0; i < response.length; i++) {
var classstyle = "";
if (response[i].status == 1) {
classstyle = "success";
} else {
classstyle = "mrn";
}
var $ordernow = $('<input/>').attr({
type: 'button',
name: 'btn1',
class: 'btn btn-' + classstyle + '',
value: 'Order Now',
style: 'float:right'
});
divhtml.append('<li><h6>' + response[i].area + '</h6><p>' + response[i].address +
'</p></li>').append($ordernow); // <-- note we are appending inside the loop now
}
for(变量i=0;i'+response[i]。区域+''+response[i]。地址+
“”)。追加($ordernow);//你能把你的小提琴简化为相关的部分吗?甚至很难弄清楚问题代码在哪里被调用,或者它应该做什么。为了模拟服务器的响应,我使用了这些数组,这种状态检查在showRestaurantDetailsByLocation函数下出现。你仍然可以简化它-你有很多根本不相关的东西。同时使用“TidyUp”按钮,你的问题实际上变得很明显。你有这一行divhtml.children(“li”).append($ordernow)
在您的循环之外,但是$ordernow
是在循环内部构造的。因此您只添加在循环的最后一次迭代中构造的$ordernow
。非常好,正是我所需要的。对于混乱的代码,很抱歉,我到目前为止还不知道该功能整理。再次感谢先生。