【发布时间】:2012-03-19 20:31:53
【问题描述】:
我的常规 javascript 代码似乎错误地或以错误的顺序将内容输出到页面,这很奇怪,因为代码非常简单(可能是 20 行顶部)。我的代码如下。注意:
-
pttr_data.length将返回 150 -
clean_array.length将返回 4。 -
output是一个 div 对象,即 var output = document.getElementById("results");
我希望我的代码输出如下:
<div>matcha matchb matchc matchn </div>
但它反而返回:
<div/>matcha matchb matchc match
这是我的代码,我在其中放置了随机字符以找出内容的去向(您会在 div 周围看到 ;;;, |||, [[[, }}}):
var len = pttr_data.length;
for (var i = 0; i < len; i++) {
var clean_array = pttr_data[i].match(RegExp(rexp.value, flags.value));
output.innerHTML += ";;;<div>|||";
var lengthy = clean_array.length;
for (var j = 1; j < lengthy; j++) {
if( clean_array[j] ) { output.innerHTML += clean_array[j] + ' '; }
else { output.innerHTML += 'NULL '; }
}
out.innerHTML += "[[[</div>}}}\n";
}
此代码返回:
;;;<div>|||</div>matcha matchb matchc [[[}}}
有人可以解释为什么会这样吗? javascript for 循环是否独立运行(因此以不同的速度完成),即使它们是嵌套的?但这毫无意义,为什么有人会设计这样的脚本语言?
我的代码怎么能输出 <div/>blah 而不是 <div>blah</div> ?
谢谢
【问题讨论】:
标签: javascript arrays for-loop innerhtml