我正在将一堆spans添加到div层,其中包含appendchild,如下所示:
var newSent = document.createElement("SPAN");
var current = document.createTextNode(sentInput.value);
newSent.style.backgroundColor = sentColor;
newSent.className = "sentSpan";
newSent.id = count - 1;
newSent.appendChild(current);
outputBox.appendChild(newSent);
其中outputBox是div图层的名称,sentInput是输入文本框的当前值。我需要每个这些跨度都可以单击,然后从数组中删除它们的值。目前我有一个事件监听器:
delCount = 0;
newSent.addEventListener("click", function(){
var x = parseInt(newSent.id);
sentCount.splice(x - delCount, 1);
sentNum.splice(x - delCount, 1);
delCount = delCount + 1;
newSent.remove(x);
});
我的想法是,每次删除一个span时,delCount都会上升以补偿现在更小的数组。
经过几次删除后,这种方法效果不佳......我似乎无法弄清楚数学或处理变化数组的正确方法。单击两个或三个跨度后,我最终删除与其旁边的跨度关联的数组中的值,但成功删除了跨度本身。此数组显示在图表上,因此正确显示它是至关重要的。
我暂时让数组用" 0"替换已删除的值。哪个效果很好,但是我需要它们才能显示在数组中。非常感谢任何帮助!
编辑:添加了一个jsfiddle http://jsfiddle.net/eL11o6mu/虽然在一个小窗口中显示看起来很糟糕......