JS:将 EventListener 添加到动态创建的 DOM 对象中,这些对象删除 parentNode
JS: addEventListener to the dynamically created DOM objects, which delete parentNode
我正在尝试这样做:使用几个用户输入的数字执行简单的计算,然后单击将计算添加到表中的新行中。表应有三列,用于三个数字。一切都很好,但我被困在这一点上:如何为用户添加删除某些行的选项?
所以,这将是 html 结构:
<tbody id="tableBody">
<tr id="row8"> <!-- In js this is ("row" + i) -->
<td class="dimA"></td>
<td class="dimB"></td>
<td class="area"></td>
<td><input type="checkbox" id="del8"></td> <!-- In js this is ("del" + i) -->
</tr>
</tbody>
因此,tr 元素是由 javascript 创建的,并且 ids 中的 i 在每次添加后都会递增。当用户选中复选框时,我需要能够删除整行。我知道使用 addEventListener 执行此操作的方法,但是如何使用未知数量的项目来执行此操作?
这是Javascript:
function dodajNaListu(eventInfo) {
if (dimA & dimB !== 0) {
var tr = document.createElement("tr");
tr.id = "row" + i;
var td1 = document.createElement("td");
td1.className = "dimA";
var A = document.createTextNode(dimA);
td1.appendChild(A);
var td2 = document.createElement("td");
td2.className = "dimB";
var B = document.createTextNode(dimB);
td2.appendChild(B);
var td3 = document.createElement("td");
td3.className = "area";
var P = document.createTextNode(rezultat);
td3.appendChild(P);
var td4 = document.createElement("td");
var chck1 = document.createElement("input");
chck1.id = "del" + i;
chck1.setAttribute("type", "checkbox");
td4.appendChild(chck1);
tr.appendChild(td1);
tr.appendChild(td2);
tr.appendChild(td3);
tr.appendChild(td4);
document.getElementById("tableBody").appendChild(tr);
i++;
}
}
我在这个领域显然是一个新手。不,我没有使用jQuery。这实际上是我工作所需的Windows 8.1应用程序。
好的,我找到了答案。这是jsfiddle链接:http://jsfiddle.net/sez1bwL3/
我在函数 dodajNaListu 中创建的每个调用此函数的复选框中添加了一个事件侦听器:
function delRow() {
var current = window.event.srcElement;
while ((current = current.parentElement) && current.tagName != "TR");
current.parentElement.removeChild(current);
}
这是我找到答案的网页链接:http://www.joegarrepy.com/tableaddrow_jscript.htm
祝你有美好的一天。
相关文章:
- 引用对象中的通用值
- jQuery匹配JSON对象的部分文本
- 节点导出返回一个空对象
- 如何在Javascript中将JSon对象转换为数组
- 我可以在json对象中添加一个函数吗
- 使用JS将数组转换为json对象
- 全局变量和全局对象的属性之间有什么区别吗
- 比较从函数和生成的日期对象
- Javascript,访问一个主要对象模块模式中的每个对象
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- 调整窗口大小时,可拖动的对象会出现在容器外部
- 如何使用javascript从主svg对象动态创建svg视图框
- 如何使用json将对象列表从java转换为javascript
- 序列化数据属性中对象的最可靠方法
- 如何访问声音管理器2创建的声音对象
- FabricJs-限制主对象内添加对象的移动区域
- JS:将 EventListener 添加到动态创建的 DOM 对象中,这些对象删除 parentNode
- getElementsByTagName(..).0.parentNode' 为 null 或不是对象
- 如何修复TypeError: 'null'不是一个对象(求值'e.parentNode'
- 如何修复IE问题'parentNode'是否为null或不是Ext.js.1.1的对象