使用Jquery在多维数组中增加键名
Posted
技术标签:
【中文标题】使用Jquery在多维数组中增加键名【英文标题】:Increment key name in multidimensional array with Jquery 【发布时间】:2021-07-20 08:42:24 【问题描述】:我正在尝试制作“复制”选项,并且我正在使用克隆来做到这一点。
我有多个这样的输入:
name="items[id-1][recepti][1][name]"
name="items[id-1][recepti][1][media]"
当我点击重复时,它需要克隆并更改为:
name="items[id-1][recepti][2][name]"
name="items[id-1][recepti][2][media]"
这是我当前的代码:
$(document).on("click",".duplicate_recept",function(e)
e.preventDefault();
var copy = $(this).closest(".recepti-dodaci").clone(); // clone
var obrok_id = $(this).closest(".ishrana").attr("data-id"); // this is key in [id-]
var recept_id = $(this).closest(".recepti-dodaci").attr("receptid"); // this is current KEY after [recepti]
var recept_count = sets_count(obrok_id,"recept") + 1; // this needs to be set after [recepti]
copy.attr("id","recept_"+obrok_id+"_"+recept_count).attr("receptid",recept_count); // this works fine
copy.find("input[name*='[recepti]["+recept_id+"]']").attr('name', function(_, name)
return name.replace("input[name*='[recepti]["+recept_id+"]']", "input[name*='[recepti]["+recept_count+"]']")
); // this doesnt work
$("#is-"+obrok_id+" .svi_recepti").append(copy);
);
【问题讨论】:
那么,什么在这里不起作用?另外,请显示您的 html 代码。 @Swati 它不会找到输入和更改密钥。 【参考方案1】:我设法做到了,它真的很简单,我可能真的很累
copy.find("input[name*='id-"+obrok_id+"']").attr('name', function(_, name)
return name.replace('[id-'+obrok_id+'][recepti]['+recept_id+']', '[id-'+obrok_id+'][recepti]['+recept_count+']')
);
【讨论】:
以上是关于使用Jquery在多维数组中增加键名的主要内容,如果未能解决你的问题,请参考以下文章