javascript - 如何将变量值添加到附加?
问题描述
我想在每个方块上显示从 0 到 224 的数字。方块是构建的,我可以在控制台上看到数字,但它们没有显示变量“x”的值
function buildBricks2() {
let boardSide = 14;
let table = $('<table>');
let tbody = table.append('<tbody />').children('tbody');
for (let i = 0; i <= boardSide; i++) {
tbody.append('<tr />')
for (let j = 0; j <= boardSide; j++) {
let x = console.log(indexOfTile(i, j))
tbody.append('<td />');
$('td').append(x);
}
}
table.appendTo('#board2');
}
buildBricks2();
function indexOfTile(row, column) {
var boardLen = 15;
if (row < boardLen && row >= 0 && column < boardLen && column >= 0) {
return row * boardLen + column;
} else {
return -1;
}
};
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="board2"></div>
解决方案
问题是因为您用于$('td')
选择td
DOM 中存在的所有元素,但是在执行该行代码td
时,DOM 中没有,因为您尚未附加它们。它们只存在于内存中。
解决此问题的最简单方法是修改代码以td
在创建时设置文本。
另请注意,您设置x
的返回值console.log()
不正确。我认为这只是您的测试中的一个错字,而不是实际问题
for (let j = 0; j <= boardSide; j++) {
let x = indexOfTile(i, j);
$('<td />', { text: x }).appendTo(tbody);
}
此外,还有一些调整可以使逻辑更加高效和简洁。这是一个完整的例子:
function buildBricks2() {
let boardSide = 14;
let $table = $('<table>');
let $tbody = $('<tbody />').appendTo($table);
for (let i = 0; i <= boardSide; i++) {
let $tr = $('<tr />').appendTo($tbody);
for (let j = 0; j <= boardSide; j++) {
let x = indexOfTile(i, j);
$('<td />', { text: x }).appendTo($tr);
}
}
$table.appendTo('#board2');
}
buildBricks2();
function indexOfTile(row, column) {
var boardLen = 15;
if (row < boardLen && row >= 0 && column < boardLen && column >= 0) {
return row * boardLen + column;
} else {
return -1;
}
};
td {
border: 1px solid black;
text-align: center;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="board2"></div>
推荐阅读
- rebol - 为什么颜色代码在 rebol 中有效但在红色中无效
- android - 构建 libtensorflow_inference.so 时出错
- ios - 当 VoiceOver 开启时,如何在点击变暗视图时关闭 UIPresentController
- python - Python 3 中的编写方法 - 动物分类
- css - SCSS 媒体查询纵横比不起作用
- vba - 以编程方式导入 Outlook VBA 用户窗体
- javascript - 我应该用默认值初始化 JavaScript 中的变量吗?
- python-2.7 - selenium.common.exceptions.WebDriverException:消息:未知错误:Chrome 无法启动:在 Ubuntu 上使用 ChromeDriver Selenium 异常退出
- json - 肥皂界面。将随机 JSON 值从数组传输到下一个响应
- android - 如何在不询问任何弹出对话框的情况下打开 GPS?