我有一个非常简单的js问题,但似乎无法弄清楚。为什么我的 span 没有附加到 div 中? jQuery 加载得很好,页面没有抛出任何错误,console.log 正确输出循环。
JS:
var matrix = [];
createGrid();
function createGrid () {
for(var i=0; i < 6; i++) {
matrix[i] = [];
for(var j=0; j < 6; j++) {
log("["+i+"]["+j+"]");
var $span = $('<span />');
$("#myGrid").append($span);
}
}
}
function log (w) {
console.log(w);
}
HTML:
<body>
<div id="myGrid"></div>
</body>
控制台输出:您可以看到没有子项被附加...这是为什么?
<div id="myGrid"></div>
<小时/>
编辑:我确实提到没有抛出控制台错误,因此 log()
不是问题,因为我在其他地方定义了它。我确实在一个空集上进行操作,因为 HTML 尚未加载...我需要准备运行 jquery。
最佳答案
如果您看到 log()
调用(意味着您已在其他地方定义了它),那是因为您在加载 HTML 之前运行了 JavaScript,如您在此处看到的 http://jsfiddle.net/dqrm07b2/1/
基本上,$('#myGrid').append($span)
上的操作没有执行任何操作,因为 $('#myGrid')
返回一个空集。
我知道有些人喜欢 jQuery 中的这种静默错误功能,但我讨厌它。尝试对空集进行操作应该会抛出错误,它为我隐藏了很多错误。
关于javascript - span 没有附加到父级 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27805018/