下面运行,点击页面的DIV运行函数a()的时候,报bank[0]为空,请大家帮忙看是什么问题
或者大家如何有更好的调用XML中的DIV,可以贴出来,谢谢
代码如下:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<script type="text/javascript">
var AJAX = (function(AJAX){
return function(url){
var ajax = AJAX();
ajax.open("GET", url, false);
ajax.send("");
return ajax;
};
})(this.XMLHttpRequest ?
function() {return new XMLHttpRequest;} :
function() {return new ActiveXObject("Microsoft.XMLHTTP");}
);
var bank = AJAX("image-flow.xml").responseXML.getElementsByTagName("div").item(0).getElementsByTagName("img");
function a(){
 document.getElementById("aa").innerHTML=bank[0].innerHTML;
}
</script>
</head><body>
<div id="aa" style=" background-color:#0066CC; position:absolute; height:400px; width:400px;" onclick="a();"></div>
</body>
</html>image-flow.xml文件
<?xml version="1.0" encoding="ISO-8859-1" ?>
<div>
<img src="图片集/45.jpg" />
</div>

解决方案 »

  1.   

    var bank = AJAX("image-flow.xml").responseXML.getElementsByTagName("div")[0].childNodes;
    document.getElementById("aa").innerHTML=bank[0].getAttribute('src');
      

  2.   

     document.getElementById("aa").innerHTML=bank[0].outerHTML;
      

  3.   

    document.getElementById("aa").innerHTML=bank[0].outerHTML; 
      

  4.   

    function a(){
    document.getElementById("aa").innerHTML=bank[0].xml;
    }
      

  5.   

    LZ,bank是XML的DOM对象哪来的innerHTML属性啊
      

  6.   

    function creatXHR(){
    if (window.ActiveXObject) return new window.ActiveXObject('Microsoft.XMLHTTP');
    else if (window.XMLHttpRequest) return new window.XMLHttpRequest();
    else return null;
    }
    function getText(node){
    return node.xml ? node.xml : (new XMLSerializer()).serializeToString(node);
    }
    var xhr = creatXHR();
    xhr.open('GET', 'image-flow.xml', false);
    xhr.onreadystatechange = function(){
    if (xhr.readyState == 4 && xhr.status == 200) {
    var text = getText(xhr.responseXML.getElementsByTagName('div')[0]);
    document.getElementById("aa").innerHTML = text;
    }
    }
    xhr.send(null);
      

  7.   

    没注意是LZ用的是同步的
    var xhr = creatXHR();
    xhr.open('GET', 'image-flow.xml', false);
    xhr.send(null);
    var text = getText(xhr.responseXML.getElementsByTagName('div')[0]);
    document.getElementById("aa").innerHTML = text;
      

  8.   


    你运行通过了?我运行还是报
       return node.xml ? node.xml : (new XMLSerializer()).serializeToString(node);这行错误:缺少对象
      

  9.   


    在IE6上还是有
      return node.xml ? node.xml : (new XMLSerializer()).serializeToString(node); 这行错误:缺少对象
      

  10.   

    function done(xhr){
    var text = getText(xhr.responseXML.getElementsByTagName('div')[0]);
    document.getElementById("aa").innerHTML = text;
    }var xhr = creatXHR();
    xhr.open('GET', 'xml.xml', false);
    xhr.send(null);
    try {
    done(xhr);
    } catch (e) {
    xhr.onreadystatechange = function(){
    if (xhr.readyState == 4 && xhr.status == 200) {
    done(xhr);
    }
    }
    }
      

  11.   


    我都不好意思了............
    还是搞不顶呢,你能不能在dreamweaver上调试运行通过后,然后把代码贴出来
    我菜得不行了
      

  12.   

    你的XML格式不对
    <?xml version="1.0" encoding="utf-8"?>
    <div>
    <img src="图片集/45.jpg"></img>
    </div>
      

  13.   

    我这里测试都是好的,即使用LZ的XML
      

  14.   


    格式我改了,你把你测试对了的代码全贴出来,HTML文件,XML都贴出来,
    我不明白怎么回事.......真的很感谢你这么尽心帮忙!
      

  15.   

    xml就用你原来的那个<html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <script type="text/javascript">
    function creatXHR(){
    if (window.ActiveXObject) return new window.ActiveXObject('Microsoft.XMLHTTP');
    else if (window.XMLHttpRequest) return new window.XMLHttpRequest();
    else return null;
    }

    function getText(node){
    return node.xml ? node.xml : (new XMLSerializer()).serializeToString(node);
    }

    function done(xhr){
    var text = getText(xhr.responseXML.getElementsByTagName('div')[0]);
    document.getElementById("aa").innerHTML = text;
    }
    </script>
    </head>
    <body>
    <div id="aa"></div>
    <script type="text/javascript">
    var xhr = creatXHR();
    xhr.open('GET', 'image-flow.xml?r='+ (new Date()).getTime(), false);
    xhr.send(null);
    try {
    done(xhr);
    } catch (e) {
    xhr.onreadystatechange = function(){
    if (xhr.readyState == 4 && xhr.status == 200) {
    done(xhr);
    }
    }
    }
    </script>
    </body>
    </html>
      

  16.   


    烦躁了,我在IE核心浏览器上运行都不行,在FF,SAFARI,OPERA都可以究竟是咋回事,有点想摔电脑了
      

  17.   

    我这里在IETest里ie5.5-8完全没问题
      

  18.   

    try catch 好像没有作用啊,就是掩盖了IE报错而已,我在IE上运行还是不行呢,你在IE上运行怎么可以啊?究竟是怎么回事