JavaScript for loop应该循环两次,为什么只有一次?
|
我有一个最奇怪的问题,我下面有一个循环,该循环应该循环两次(它应该循环的次数与HTML块中存在textarea元素的量相同,所以为2),但是它只能循环一次?
您为什么认为这种情况正在发生?
// This is the test HTML that should make the loop further below loop twice
<div class=\"inputPanel\">
<div class=\"a\">
<p class=\"label\">Staff Link</p>
<textarea class=\"updatable~p\"> abcdef </textarea>
<p> blah blah </p>
<div class=\"b\"> defgh </div>
<p class=\"label\">Staff Info</p>
<textarea class=\"updatable~p\"> erdeffde </textarea>
<div class=\"footer\"> end </div>
</div>
function convertToDisplayHTML( str )
{
try
{
// Algorithm:
// get all code from iframe
// extract all textarea elements
// if textarea[i].class.match( \"updable\" )
/* {
var eleType = textarea[i].class.split(\"~\");
eleType = eleType[ eleType.length-1 ];
change elements type to eleType
change elements value to textareas value
}
delete all elements that are <p>\'s & have the class=\"label\"
return string
*/
var textareas = document.getElementById(\"inputPanel\").getElementsByTagName(\"textarea\");
var labels = getElementsByClassName( \"label\", document.getElementById(\"inputPanel\") );
alert(textareas.length); // says \"2\"
// THIS IS THE LOOP: it should loop 2 times not 1
for ( var i=0; i<textareas.length; i++ )
{
alert(\"Loop 1 \" + textareas[i].className);
if ( textareas[i].className.match( \"updatable\" ) )
{
var className = \"\";
var eleType = textareas[i].className.split( \"~\" );
eleType = eleType[ eleType.length-1 ];
if ( labels.length > 0 )
{
var className = \"updater~\"+labels[0].innerHTML;
labels[0].parentNode.removeChild( labels[0] );
labels.shift();
}
var newObj = changeObjectType( textareas[i], eleType, className );
}
alert(\"A\");
}
return document.getElementById(\"inputPanel\").innerHTML;
}
catch (ex)
{
alert(\"In convertToDisplayHTML(): \"+ex);
return \"FAILED\";
}
}
没有找到相关结果
已邀请:
1 个回复
痰降锭骂奸
没有称为
的功能。 那就是我遇到错误的地方。注释掉(以及尚未定义的对
的调用)对我来说解决了这个问题。