我是Javascript和html的初学者。我想输出10"嗨"但是下面的代码不起作用。我该怎么办?
index.html和app.js位于同一个文件夹中。
的index.html
<html>
<head>
</head>
<body>
<div class = "test"></div>
<script type="text/javascript" src="app.js"></script>
</body>
</html>
app.js
var main = function(){
for(var i = 0; i<10; i++){
var f = document.createElement('p');
f.innerText = "Hi.";
var div = document.getElementByClass('test');
div.appendChild(f);
};
$(document).ready(main);
答案 0 :(得分:7)
$
未定义的错误,因此参考错误$
(您可能希望通过加入the jQuery library)或者,只需删除$(document).ready(main);
并直接拨打main()
即可。你似乎并不需要jQuery。
然后你必须与getElementByClass
作为一个功能抗争。请改为getElementsByClassName
或querySelector
。
答案 1 :(得分:2)
首先,你引用jQuery library而不包含它
$(document).ready(main);
添加到jquery库的链接:
<script type="text/javascript" src="http://code.jquery.com/jquery-1.11.2.min.js"></script>
那么你的脚本有一些错误:
尝试使用浏览器的开发者控制台进行调试
您的代码应如下所示:
var main = function(){
/*no need to exec this for all loops iteration
and the right method is getElementByClassName not getElementByClass */
var div = document.getElementByClassName('test')[0];
for(var i = 0; i<10; i++){
var f = document.createElement('p');
f.innerText = "Hi.";
div.appendChild(f);
};
} /*you forgot to close the function*/
$(document).ready(main);
答案 2 :(得分:2)
(function () {
for (var i = 0; i < 10; i++) {
var f = document.createElement('p'),
div = document.querySelector('.test');
f.innerText = 'Hi';
div.appendChild(f);
}
})();
答案 3 :(得分:0)
有几件事:
}
getElementsByClassName
,而不是getElementByClass
$(function () { for (var i = 0; i < 10; i++) { var f = document.createElement('p'); f.innerText = "Hi."; var div = document.getElementById('test'); div.appendChild(f); } });