发出动态生成表
Issue dynamically generating table
本文关键字:动态 更新时间:2023-09-26
我正在使用jquery制作一个表,其中瓷砖的id是使用嵌套的FOR循环生成的。我试图添加和事件监听器的瓷砖,使用他们的id,所以我可以运行一个函数时,单击他们。但是,存储在变量boatStatusClient中的id不能被识别,并抛出错误。有人能看出问题所在吗?
for (y_client = 1; y_client < 11; y_client++) {
battlefield_client += "<tr>";
for (x_client = 1; x_client < 11; x_client++) {
battlefield_client += "<td onclick = '' class = 'tile' style='border: 3px solid black;' id=" + "cell_client_" + x_client + "_" + y_client + "><pre> </pre></td>";
boatStatusClient = document.getElementById('cell_client_' + x_client + "_" + y_client);
console.log(boatStatusClient);
boatStatusClient.addEventListener("click", function(){boatGrid.placeBoat_client()});
}
battlefield_client += "</tr>";
}
$(document).ready(function() {
$("#tableGrid_client").html(battlefield_client); //loads table
看起来您试图找到一个DOM中不存在的document.getElementById()元素。
首先将其附加到页面,然后搜索并添加相关的事件侦听器。
但是,你真的应该考虑用文档来做。createElement(或jQuery对象),而不是连接字符串。
看,你的事件函数是在创建DOM元素之前执行的!
试试这个:
for (y_client = 1; y_client < 11; y_client++) {
battlefield_client += "<tr>";
for (x_client = 1; x_client < 11; x_client++) {
battlefield_client += "<td onclick = '' class = 'tile' style='border: 3px solid black;' id=" + "cell_client_" + x_client + "_" + y_client + "><pre> </pre></td>";
}
battlefield_client += "</tr>";
}
$(document).ready(function() {
$("#tableGrid_client").html(battlefield_client); //loads table
$('.tile').click(function() {
boatGrid.placeBoat_client();
});
});
正如前面提到的,您试图到达一个尚未在DOM中的元素,因此无法获得它。
battlefield_client += "<td onclick = '' class = 'tile' style='border: 3px solid black;' id=" + "cell_client_" + x_client + "_" + y_client + "><pre> </pre></td>";
只创建一个包含this的字符串,但永远不会将它插入dom中——至少在尝试获取实际元素之前不会。
所以你要做的是:将这个字符串附加到view/dom:-)然后你应该可以用上面的方法得到它。
除此之外,我会考虑更好地放置引号,而不是混合使用单引号和双引号。我的建议是在编写JavaScript时总是使用单引号,而在编写html时总是使用双引号。相关文章:
- 无法从 jQuery RSS Feed 中的 localStorage 动态替换类
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 动态分配GA增强型电子商务跟踪器
- onkeyup无法动态创建多个文本区域
- 使用javascript将动态表从一个html页面打印到另一个html页
- 如何使Javascript动态html表及其上的事件
- 动态地改变“”的URL;添加新项目”;链接使用javascript/jquery
- 如何在Bootstrap Modal中为动态点击生成的变量设置jade属性
- 如何使用javascript从主svg对象动态创建svg视图框
- 试图在引导模式内动态生成图表,得到offsetWidth错误
- 通过在Dojo mobile ViewController.openExternalView中动态更改打开同一外部视图的
- 如何在Google柱状图中动态添加行/列
- 困在逻辑中试图定位动态的东西
- 在动态创建的元素上获取对特定选择器的引用
- 如何动态插入jquery代码
- 使用Google Visualization动态调用构造函数
- 使用jQuery动态添加表并在其中动态添加行
- d3基于用户选择动态更新节点
- 使用JQuery的动态上下文菜单
- JQuery对动态创建的对象进行选择