单击javascript时的删除按钮
Delete button when it's clicked javascript
我有一些代码,当一条线添加到图表时,它会创建一个按钮。单击按钮时,我想从图表中删除线条并删除按钮。可以在此处查看该示例。
也就是说,成功添加按钮的代码是:
function getChartData(option){
var category = $('#category').val();
var option = option.value;
var seriesTitle = category+option;
$.ajax({
url: "getData.php?action=getChartData",
type: "GET",
dataType:"json",
data: {
category:category,
option:option
},
success: function(json){
chart.addSeries({
name: seriesTitle,
data : []
});
$.each(json.Data,function(){
chart.series[chart.series.length-1].addPoint([parseFloat(this.Year), parseFloat(this[option])]);
});
}
});
var series = document.createElement('button');
series.onclick = function(){
removeLine(seriesTitle);
}
series.setAttribute('id',seriesTitle);
series.innerHTML=seriesTitle;
$('#removeLine').append(series);
}
然后,当单击该按钮时,此代码不执行任何操作:
function removeLine(seriesTitle){
chart.series[seriesTitle].remove();
$(seriesTitle).remove();
}
错误是:
Uncaught TypeError: Cannot call method 'remove' of undefined
removeLine oil.js:172
series.onclick
对于任何知道我如何根据变量在高图表中调用特定线的人,都可以获得奖励积分,例如:
chart.series[chart.series.length-1].remove();
这不会:
chart.series[seriesTitle].remove();
当你使用chart.series[something].remove();
"某物"必须是你在这里看到的意甲位置。因此,您必须通过参数传递位置。这就是chart.series[0].remove();
工作的原因。
因此,如果要解决此问题,可以在删除之前根据标题找到系列位置,如下所示。
function removeLine(seriesTitle){
for(var postion = 0; position < chart.options.series.length; position++) {
if(chart.options.series[position].name == seriesTitle) {
chart.options.series[position].remove();
break;
}
}
}
或
function removeLine(seriesTitle){
$.each(chart.options.series, function(pos, serie){
if(serie.name == seriesTitle) {
chart.series[pos].remove();
}
});
}
要在删除按钮时解决问题,您必须添加一个哈希标签,如下所示:
$('#' + seriesTitle).remove();
因此,您的函数将如下所示:
function removeLine(seriesTitle){
for(var postion = 0; position < chart.options.series.length; position++) {
if(chart.options.series[position].name == seriesTitle) {
chart.options.series[position].remove();
break;
}
}
$('#' + seriesTitle).remove();
}
我认为问题出在行上
seriesTitle = chart.addSeries({
name: seriesTitle,
data : []
});
seriesTitle
这里seriesTitle
指的是由
var seriesTitle = category+option;
并覆盖其值。我猜addSeries
正在返回一个对象或undefined
. seriesTitle
将使用此值传递给 removeLine
,并且您将其用作数组chart.series
的键。
尝试删除那里的赋值(看起来你真的不想要它),或者只是用var作为前缀(它将成为匿名函数的本地)。
如果您不确定
chart.series
的键值对,请将其传递给console.log()
,您可以检查它以查看您的键应该是什么样子(以及值是什么)。
相关文章:
- JS动态添加字段-删除按钮不起作用
- 删除按钮并在单击时进行分配
- 如何根据某些条件向可编辑的jquery数据表添加或删除按钮
- 如何在图像右上角显示删除按钮
- 克隆字段上的“添加-删除”按钮
- jTable条件显示隐藏基于数据所有者的编辑和删除按钮
- 如何隐藏剑道网格命令的编辑按钮或删除按钮
- 悬停事件上的删除按钮
- 使用node.js更新和删除按钮
- 禁用编辑和删除按钮在IE9中不起作用,但在IE11中起作用
- 当我以带有编辑和删除按钮的表单提交时,显示所有值
- 使用 jquery 在函数中添加删除按钮
- 如何在使用Angular.js打开新行后添加删除按钮
- 剑道网格隐藏/显示删除按钮
- 数据表删除按钮在其他页面上不起作用,除了第一个
- 如何禁用和启用删除按钮,如果未在 GridView 中选中复选框由 Jquery
- 当 AJAX 加载内容时,喜欢和删除按钮不起作用
- 如何在 JSP 中的“单击”复选框时创建删除按钮
- Jquery:如何将图像添加到删除按钮
- 为什么我的删除按钮不起作用