由于某些原因,我必须修改用于创建发票的软件的模板。发票是用html生成的,因此,我认为我可以使用“时尚”和“油脂猴子”来做到这一点(开发人员不提供支持,所以我必须自己做)。 基本上我有一些没有id的div元素和表。我为每个元素生成了唯一的ID(这部分代码有效),现在我需要克隆“ #order-” + index +”-details”,并在其前面加上“ #order” + index +“ lines”,其中“ #order-“ + index +”-details匹配“ #order” + index +“ lines”(此部分不匹配)。 我知道代码是业余代码和丑陋的代码,但它不一定高效,它必须有效;)。
var orders=document.querySelectorAll("div.pages");
for(var i = 0; i < orders.length; i++){
$("body").find("div.pages").each(function(index){
$(this).attr("id","order-"+index+"-page");
})
$("body").find("div.pages > div:nth-child(1) > table:nth-
child(3)").each(function(index){
$(this).attr("id","order-"+index+"-details");
})
$("body").find("div.pages > div:nth-child(1) > table:nth-
child(7)").each(function(index){
$(this).attr("id","order-"+index+"-lines");
})
$order_details = $("#order-"+index+"-details").clone();
$("#order"+index+"lines").prepend($order_details);
}
这部分不起作用
$order_details = $("#order-"+index+"-details").clone();
$("#order-"+index+"-lines").prepend($order_details);
在我尝试时可以使用:
$order_details = $("#order-1-details").clone();
$("#order-1-lines").prepend($order_details);
$order_details = $("#order-2-details").clone();
$("#order-2-lines").prepend($order_details);
但是我需要循环播放。预先非常感谢您的所有建议。
关于, 托马斯。
答案 0 :(得分:1)
$order_details = $("#order-"+index+"-details").clone();
$("#order"+index+"lines").prepend($order_details);
应该是
$order_details = $("#order-"+i+"-details").clone();
$("#order"+i+"lines").prepend($order_details);
更清楚代码是否格式化:
var orders = document.querySelectorAll("div.pages");
for (var i = 0; i < orders.length; i++) {
$("body").find("div.pages").each(function(index) {
$(this).attr("id","order-"+index+"-page");
});
$("body").find("div.pages > div:nth-child(1) > table:nth-
child(3)").each(function(index){
$(this).attr("id","order-"+index+"-details");
});
$("body").find("div.pages > div:nth-child(1) > table:nth-
child(7)").each(function(index){
$(this).attr("id","order-"+index+"-lines");
});
$order_details = $("#order-"+i+"-details").clone();
$("#order"+i+"lines").prepend($order_details);
}