0

我有一个基本的 HTML 页面,仅包含:

<body id="body">
<script src="js/jquery-2.0.3.js"    type="text/javascript"></script> 
<script src="js/three.min.js"       type="text/javascript"></script> 
<script src="js/stats.min.js"       type="text/javascript"></script> 
<script src="js/application.js"     type="text/javascript"></script>
</body>

作为页面的主体index.html,其中的内容application.js是:

function init() {
    var container = $('div');
    container.attr('id', 'container');
    $('body').append(container);
    alert('Container: ' + $('#container').length);
}

$(function() {
    init();
});

所以这显然是一些非常基本的代码,我创建了一个 div 并将其附加到正文中。但是,alert我进行的调用返回0,当我通过 chrome 检查 DOM 树时,没有添加任何 div。

当我将脚本文件添加到标签底部并从 jQuery块<body>调用时,为什么会发生这种情况?看起来像这样一个基本而简单的任务。init()ready()

注意:chrome 的控制台中没有抛出任何错误

4

2 回答 2

2

您的行var container = $('div');不是在创建DIV,而是在选择一个。如果你想创建一个容器然后做var container = $('<div></div>');

结果,您当前的代码返回了一个空的 jQuery 对象,但是您没有注意到 jQuery 可以很好地处理它们,并且什么也不做。

于 2013-08-18T15:14:51.947 回答
2
$('div')

<div>将使用元素选择器选择页面中的所有元素。
您没有任何<div>元素,因此它返回一个空的 jQuery 对象。

因此,您的其余代码无效。

听起来您实际上想要创建一个新元素:

$('<div />')
于 2013-08-18T15:14:46.003 回答