Мой обычный код javascript, похоже, выводит данные на страницу либо неправильно, либо в неправильном порядке, что странно, потому что код очень прост (возможно, максимум 20 строк). Мой код ниже. Примечание:
pttr_data.length
вернет 150clean_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>
?
Спасибо