【发布时间】:2014-02-12 04:34:11
【问题描述】:
我有一个带有树图片的网站,然后我使用 Ajax 删除了该树并使用 javascript 插入了一个数字。我用的是;
document.getElementById("cut_oak_tree");
我现在在页面上添加了另一棵树,它应该具有与第一棵树完全相同的功能,除了只有您单击的树将被删除。为避免重复代码,我尝试添加以下内容:
document.getElementsByClassName("cut_oak_tree");
然后将我的 div 从使用 id 更改为 class。但是,当我现在单击任何树时,什么都没有发生。我现在的 ajax 代码如下所示:
function loadXMLDoc()
{
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)
{
var getClass = document.getElementsByClassName("cut_oak_tree").innerHTML=xmlhttp.responseText;//ask for this.
for(i=0;i<getClass.length;i++)
{
getClass[i].innerHTML = "";
}
}
}
xmlhttp.open("POST","xxx",true);
xmlhttp.send();
}
我搜索了很多,发现我可能需要使用 for 循环和 document.getElementsByClassName("cut_oak_tree");
但我真的无法让它发挥作用。如果我正确地解决了我的问题,那么如果我可以确定在按下 div 时应该删除 div 中的哪些树图像,那么一切都应该很好。提前致谢。
编辑: html示例:
<div id "thanks">
<img class="cut_oak_tree" src="http://www.pbpixels.com/x/images/oak.png" onclick="loadXMLDoc(), myFunction()">
<img class="cut_oak_tree" src="http://www.pbpixels.com/x/images/oak.png" onclick="loadXMLDoc(), myFunction()">
</div>
【问题讨论】:
-
你能提供一些示例 HTML 吗?
-
与 getElementById 形成鲜明对比,它只返回一个 SINGLE 元素,因此它本身不需要索引,getElementsByClassName 获取 MULTIPLE 元素(由 Element 后面的“s”表示。因此,它需要一个 [i ] 索引在其后面。例如:getElementsByClassName("my_class")[0]
-
@StefanGruenwald 我已经尝试添加您刚才所说的内容,问题是两棵树现在都消失了,而不仅仅是您单击的那棵树。谢谢。
标签: javascript html ajax