我在 php 文件中使用一个函数来创建一些“li”和一些“span”元素,如下所示:
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();
}
问题是当函数执行时,只有“li”元素被删除,“span”仍然存在。