document.innerHTML 上的 JavaScript 错误
JavaScript error on document.innerHTML
我不知道为什么,但以下内容阻止了我的JavaScript工作。
我知道这样做不是最佳做法,但我不知道它在哪里中断。
JavaScript:
function loadmore(id) {
var xmlhttp;
if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else { // code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
var content;
var x = JSON.parse(xmlhttp.responseText);
alert('' + x.length);
for (i = 0; i < x.length; i++) {
document.getElementById("content").innerHTML += '<div class="col-lg-4 col-md-4 col-sm-4">';
document.getElementById("content").innerHTML += '<div class="thumbnail">'
document.getElementById("content").innerHTML += '<img src="' + x[i].main_image + '" alt="' + x[i].title + '" style="width:300px !important; height:150px; overflow:none;">';
document.getElementById("content").innerHTML += '<div class="caption">';
document.getElementById("content").innerHTML += '<h3>' + x[i].title + '</h3>';
document.getElementById("content").innerHTML += '<p>' + x[i].content;
document.getElementById("content").innerHTML += '</p>';
document.getElementById("content").innerHTML += '<p><a href="//russellharrower.com/' + x[i].url + '" class="btn btn-default" role="button">Read More</a></p>'
document.getElementById("content").innerHTML += '</div>';
document.getElementById("content").innerHTML += '</div>';
document.getElementById("content").innerHTML += '</div>';
id = x._id;
//document.getElementById("content").innerHTML+=content;
}
}
}
//xmlhttp.responseText
xmlhttp.open("GET", "search/json&qid=" + id, true);
xmlhttp.send();
}
作为一般规则,正确的操作顺序是:
-
new XMLHttpRequest
-
.open()
-
.onreadystatechange =
-
.send()
在某些浏览器中,尤其是那些允许对多个请求重用同一对象的浏览器,调用.open()
将清除.onreadystatechange
处理程序。
作为附加说明,请不要将.innerHTML
和+=
混为一谈。以下是浏览器如何看待它:
document.getElementById("content").innerHTML += '<div class="col-lg-4 col-md-4 col-sm-4">';
哦,缺少一个结束标签,最好添加它。
</div>
自动添加。document.getElementById("content").innerHTML += '<div class="thumbnail">'
哦,缺少一个结束标签,最好添加它。
</div>
自动添加。document.getElementById("content").innerHTML += '<img src="' + x[i].main_image + '" alt="' + x[i].title + '" style="width:300px !important; height:150px; overflow:none;">';
好的,添加了一个图像。请注意,我们不在您期望的
<div><div>
内!document.getElementById("content").innerHTML += '<div class="caption">';
哦,缺少一个结束标签,最好添加它。
</div>
自动添加。document.getElementById("content").innerHTML += '<h3>' + x[i].title + '</h3>';
好的,添加了
<h3>
.仍然没有你想<div><div><div>
!document.getElementById("content").innerHTML += '<p>' + x[i].content;
缺少
</p>
标签,需要添加它。document.getElementById("content").innerHTML += '</p>';
这里没有
<p>
...最好添加一个以使此</p>
有效。添加了空段落。document.getElementById("content").innerHTML += '<p><a href="//russellharrower.com/' + x[i].url + '" class="btn btn-default" role="button">Read More</a></p>'
好的,添加了链接的段落。
document.getElementById("content").innerHTML += '</div>';
啊!我没有开放的
<div>
!最好添加一个。添加了空<div>
。(重复 x3(
你能看到这种循序渐进的方法是如何导致问题的,因为它一直认为你已经完成了,并相应地纠正你的"坏"HTML?
可以进行一些小的更改来简化此操作。 尝试。。。
var content = document.getElementById("content");
var build_html = [
"<div>",
"Content Here",
"</div>"
].join("'n");
content.innerHTML = build_html;
显然,您的HTML内容比我在这里的内容更健壮,但是有了这个,您就不会一遍又一遍地抨击DOM。
相关文章:
- object响应时出现对象错误javascript
- 未捕获的语法错误:javascript对象上出现意外的标记ILLEGAL
- Phonegap-Android 4.4-html5音频长度错误(javascript和媒体插件)
- 未捕获的语法错误:javascript中出现意外的标记}
- 如何从 MVC4 链接调用 Javascript 方法(错误 JavaScript 运行时错误:对象不支持此操作)
- 未捕获类型错误javascript方法
- 将字符串返回到类型为“0”的输出字段;数字“;针对用户错误javascript
- 解析器错误(Javascript初学者寻找解决方案)
- IE 错误 .JavaScript 运行时错误:对象不支持属性或方法“preventDefault”
- appendChild 不是函数错误 (JAVASCRIPT)
- 错误 JavaScript 函数
- 而循环抛出错误JavaScript
- 意外的类型错误 - Javascript,多维数组
- 语法错误:Javascript 中的意外令牌/将数据发布到 Amazon s3
- 语法错误:Javascript 中缺少指数
- 错误“JavaScript 运行时错误:查找滚动位置时无法获取未定义或空引用的属性'scrollLeft'”
- 错误 JavaScript 循环数组
- 错误:Javascript 上的 [对象对象]
- IndexedDBShim.js错误:JavaScript运行时错误:在严格模式下不允许分配只读属性
- 在Evernote listNotebooks API上获取错误-Javascript/Node.Js