当前位置: 首页 > 知识库问答 >
问题:

如何在JavaScript生成的按钮中添加一个函数?

魏凯捷
2023-03-14

我有一个HTML格式的表,显示关于产品的数据。好吧,在这个表中我想添加一个按钮,允许用户在愿意的情况下删除该产品,该按钮将通过JavaScript与表中的信息一起自动生成。

<!-- This is my table in HTML -->
<table id="tableVolume" border="1">
    <thead>
        <tr>
            <th>  Volume  </th>
            <th>  Serial Number  </th>
            <th>  Situation  </th>
            <th>  Delete  </th>
        </tr>
    </thead>
<tbody>
</tbody>
</table>

没有信息的表应该如下所示:

在JavaScript中,我有一个函数可以处理这个表,一个用来添加空行,另一个用来添加信息,包括delete按钮。

// Function to add lines to a table
$scope.insertLines = function () {
    
    var tableS = document.getElementById("tableVolume");
    var numOfRowsS = tableS.rows.length;
    var numOfColsS = tableS.rows[numOfRowsS-1].cells.length;
    var newRowS = tableS.insertRow(numOfRowsS);

    for (var k = 0; k < numOfColsS; k++)
    {
        newCell = newRowS.insertCell(k);
        newCell.innerHTML = '&nbsp;';
    }
};

//Function to add informations to a table
$scope.infosnaTabelaSecun = function(number) {
    if (FindCodigo != null && matchTraco == null) {
        for (var k = 0; k < $scope.FindSerialNumber.length; k++) {
            tableVolume.rows[number+k+1].cells[0].innerHTML = volTotal;
            tableVolume.rows[number+k+1].cells[1].innerHTML = lines[(5+k)].substring(4); 
            tableVolume.rows[number+k+1].cells[2].innerHTML = "";
            tableVolume.rows[number+k+1].cells[3].innerHTML = "<button class='button-one' onclick='DeleteSrlNumber()'> <i class='fas fa-trash-alt'></i></button>";
        }
    }
    else if (matchTraco != null) {
        for (var k = 0; k < (lines.length - $scope.pularLnhs); k++) {
            tableVolume.rows[number+k+1].cells[0].innerHTML = volTotal;
            tableVolume.rows[number+k+1].cells[1].innerHTML = lines[($scope.pularLnhs+k)].substring(4);  
            tableVolume.rows[number+k+1].cells[2].innerHTML = "";
            tableVolume.rows[number+k+1].cells[3].innerHTML = "<button class='button-one' onclick='DeleteSrlNumber()'> <i class='fas fa-trash-alt'></i></button>";
        }
    }
};

其余的代码没有太大的关系,以至于有变量和函数的名字,我没有给出细节。对我来说最重要的是台词

tableVolume.rows[number+k+1].cells[3].innerHTML = "<button class='button-one' onclick='DeleteSrlNumber()'> <i class='fas fa-trash-alt'></i></button>";

在这里我会自动向表中的每一行添加一个按钮。好吧,我可以添加按钮,但我不能将该按钮连接到函数,例如,当单击按钮时,它将删除它所在的行。

我该怎么做?将一个函数链接到我使用JavaScript创建的这个按钮?

共有1个答案

太叔繁
2023-03-14

指定为html属性的事件处理程序将在全局范围内查找javascript标识符。因此,在当前场景中,如果deletesrlnumber()是全局声明的,那么实际上应该在单击时调用它。

如果您希望访问非全局标识符,那么您可以执行如下操作:

var button = document.createElement("button")
button.addEventListener("click", function() { 
   DeleteSrlNumber()
})
tableVolume.rows[number+k+1].cells[3].appendChild(button)

请注意,在这种情况下,标识符,即使不是全局的,仍然应该在作用域中。

 类似资料:
  • 问题内容: 我的网站上有一个jqgrid(版本3.5.3),它是通过对Web服务的Ajax调用获取结果的。查询通常很复杂,加载结果需要花费几秒钟的时间。加载时,用户会看到一个框[Loading …]。 如果用户意识到他们在搜索错误的内容,则客户端要求向网格添加一个取消按钮,这将: 使网格忘记刚刚请求的数据 保留先前搜索中已加载的结果 似乎没有内置任何功能,因此我可能正在寻找一些技巧来实现这一目标。

  • 问题内容: 我只是试图在我的注释点添加一个细节按钮而被卡住,不幸的是,我不知道该怎么做。有人可以帮我吗? 下图显示了我想要实现的目标。谢谢! MapKitViewController: 问题答案: 您做对了,您只需要实现这些方法即可添加按钮以及标题和副标题 iOS 8和Xcode 6 查看我的输出。

  • 问题内容: 我有一个基于Swing的应用程序,其中包含一个。现在,我想使用唯一的行ID来更新或删除每一行。因此,我想向每行添加一个更新和删除按钮,它们具有支持ActionListener的功能。但是,我不知道如何使用NetBeans执行此操作。 问题答案: 要在列中显示按钮,您需要创建: 一个自定义渲染器以显示JButton 定制编辑器以响应鼠标单击 阅读Swing教程中有关如何使用表的部分。关于

  • 我在firestore有一些东西。我想按顺序显示它们,但以随机序列显示。所以,我做了以下代码。这里我想显示一个特定的问题,然后当点击“下一步”按钮时,我想显示下一个项目。在这里,在forEach循环中,我将项目渲染到renderQuestion函数。他们正在使用HTML和CSS在前端显示它们。 但是我正在获取这个问题,他们一直显示所有内容,直到循环结束。他们不会等待按下“下一步”按钮。那么,我该怎

  • 我想在action TableColumn中添加两个按钮,我已经阅读了如何在JavaFX表格视图中添加按钮,以及如何在表格视图(JavaFX)中的单元格中添加按钮,但这两个按钮都在中使用一个按钮,所以当我尝试使用: 它只显示了一个按钮: 我怎样才能解决这个问题?

  • 是否可以在报告中添加一个按钮,任何操作都将被修复? 示例:按钮“查看”,将显示更详细的统计信息。 备注: 我不完全理解如何制作文本元素的按钮