javascript - 如何在循环中或为每个数组元素使用 .clone()?
问题描述
出于某种原因,我必须修改用于创建发票的软件模板。发票是用 html 生成的,因此,我认为我可以使用 Stylish 和 Grease Monkey 来做到这一点(没有开发人员的支持,所以我必须自己做)。基本上我有一些没有 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);
但我需要循环它。非常感谢您的所有建议。
问候,托马斯。
解决方案
$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);
}
推荐阅读
- wordpress - 如何删除wordpress自定义通知?
- firebase-realtime-database - Firebase 实时数据库 - 规则
- string - 在最新的 Powershell 7.x 中将两个字符插入 GB UTF8 字符串的最快方法
- javascript - 从 JavaScript 数组中包含的对象中删除交替逗号
- javascript - 单击时网格中的元素会移动
- c# - 如何限制asp.net核心身份中的最大注册用户数
- javascript - Powershell 的 Invoke-WebRequest 中与 SessionVariable 等效的 Javascript 是什么?
- sql-server - Q. 在 SSAS 中 - 引用的关系类型
- javascript - 如何改变
- ios - 如何检测用户滚动 MKMapView