我使用一個函數在PHP文件創建一些「禮」等這樣一些「跨越」元素:removeChild之()錯誤在JavaScript
while($row_quotes=mysql_fetch_array($result_quotes) and $x<10){
$x++;
echo "<li class='citazione'>".$row_quotes['citazione']."</li><span class='citazione_info'>".$row_quotes['personaggio']." - ".$row_quotes['libro']."</span>";
}
這些包含內部「UL ID =」 quotes_holder'」。 然後,我有一個javascript函數,在某個調用中應該刪除所有創建的「li」和「span」元素,所以我認爲它應該用包含「ul」的removeChild()方法去除它們。
這裏的JavaScript函數:當執行功能中,只有「禮」的元素被移除
function ritorna_filtri(obj, autore){
var index=obj.selectedIndex;
var selected=obj.childNodes[index];
var value= selected.value;
var div=document.getElementById('quotes_holder');
for(l=0;l<div.childNodes.length;l++){
div.removeChild(div.childNodes[l]);
}
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)
{
response=xmlhttp.responseText;
jsonObj=eval("("+response+")");
for(i=0;i<jsonObj.libri.length;i++){
var li=document.createElement('li');
var text=document.createTextNode(jsonObj.libri[i].titolo);
li.appendChild(text);
li.setAttribute('class', 'filtro');
div.appendChild(li);
}
}
}
xmlhttp.open("GET","ritorna_filtri.php?filtro="+value+"&autore="+autore,true);
xmlhttp.send();
}
問題是,在「跨越」 S仍然存在。
這可能會觸發異常,一旦元素被移除,長度會改變;並且childNodes向上移動一個位置。 –