![](/img/trans.png)
[英]How to add Edit and delete button in each row using javascript/jquery
[英]How to edit the ID of each button in a class if a condition is true in JavaScript?
我正在使用ChartJS生成饼图,因为每次用户单击特定按钮时都会添加元素(我有14个按钮触发在饼图中添加特定元素,每个按钮触发一个向信息添加信息的功能为了使图表正常工作,需要3个数组。
每次用户单击按钮时,都会在div中创建一个新按钮,其中包含图表中存在的所有元素,因为我希望它们能够根据需要进行编辑或删除。
为了知道数组中的哪些元素是由哪个编辑按钮编辑的,我使用了一个名为btnctr的变量,该变量在JS文件的开头用0初始化。 该变量为每个新的“编辑按钮”赋予一个ID,然后递增,如下所示:
function CreateEditButton() {
var buttonnode= document.createElement('input');
buttonnode.setAttribute('type','button');
buttonnode.setAttribute('id',btnctr);
...
$("#rotationelements").append(buttonnode);
$("#rotationelements").append(' ');
btnctr++;
};
我的问题是我还必须使删除元素成为可能。 我正在使用splice从数组中删除元素,但这也弄乱了其他元素的位置,并且我的编辑按钮变得无用。
删除元素时,我还想编辑按钮的ID,因为我需要它们保持同步。
到目前为止,这是我自带的:
// Get editbuttons
var editbuttons = document.getElementsByClassName('editbtn');
// Delete element
function deleteElement (x) {
names.splice(x,1);
dataset.splice(x,1);
colors.splice(x,1);
chart1.update();
time=time-length[x];
length.splice(x,1);
UpdateTime();
var delbtn=$("#"+x);
$(delbtn).remove();
var newid=x;
for (var i=0; i<editbuttons.length;i++) {
if (editbuttons[i].id>x) {
editbuttons[i].id=newid;
newid++;
btnctr=newid++;
}
}
}
谢谢!
卢莲,在您的for循环中,您似乎只是在更改了上面删除的editbtns的ID后才对其进行更改。 您可能要尝试取出if语句,并将“ newid”替换为“ i”:
for (var i=0; i<editbuttons.length;i++) {
// if (editbuttons[i].id>x) {
editbuttons[i].id=i;
//newid++;
btnctr=i;
// }
}
这样,您可以重新初始化所有editbtn和btnctr以从头到尾匹配。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.