我用XMLHttpRequest取到了一个页面,然后想获取页面里的某些内容,于是把responseText的值放到一个新建的div节点的innerHTML里。当我想在这个页面里用Id找到某个节点时,发现getElementById只能用在document对象上,无法用在一般的节点上。
当然getElementsByTagName可以用在一般节点上,但还是觉得getElementById方便些。能不能让responseText的值变成一个document对象呢?

解决方案 »

  1.   

    你的div本身就在document中啊,直接
    document.getElementById
      

  2.   

    我只是创建div了没有插入document中,这样也在里面吗?
    真的在那可不妙了,原页面和现在页面可能都含有那个Id的节点,都在一起的话,连getElementsByTagName都区分不了了啊……
      

  3.   

    那只能使用节点的div.getElementsByTagName()然后在去遍历找id
      

  4.   


    问题是这也影响到了原页面的getElementById、getElementsByTagName等所有函数了。子页面可以只查找div内的,原页面又怎么办呢?
      

  5.   

    你的节点ID 是唯一的 ,getElementById就可以找的到。
      

  6.   

    <html><body>
    <span id="span_id" style="display:none;">span text</span>
    <script type="text/javascript">try {var div = document.createElement("div");
    div.innerHTML = '<span id="my_id">my text</span>';var span = document.getElementById("span_id");
    var newSpan = document.getElementById("my_id");var newSpan1;
    var allSpans = document.getElementsByTagName("span");
    for (var i = 0; i < allSpans.length; ++i)
    {
    if (allSpans[i].id == "my_id")
    newSpan1 = allSpans[i];
    }
    document.write( span + "<br />");
    document.write( newSpan + "<br />");
    document.write( newSpan1 + "<br />");} catch (e) {document.write(e);}</script></body></html>在Firefox 3.5.8上测试的结果:[object HTMLSpanElement]
    null
    undefined这说明,不插入document就不会被查找到?
      

  7.   

    用jQuery,支持在返回的html中定位id在一个由 AJAX 返回的 XML 文档中,查找所有的 div 元素。jQuery 代码:
    $("div", xml.responseXML);
      

  8.   

    这么做和我写个函数用getElementsByTagName查找又有什么区别呢。
      

  9.   

    “我用XMLHttpRequest取到了一个页面,然后想获取页面里的某些内容,于是把responseText的值放到一个新建的div节点的 innerHTML里”——你这思路本身就有问题!
      

  10.   


    正常思路是什么样的?真心求教 orz
      

  11.   

    想获取页面里的某些内容,直接在responseText中用正则提取。
      

  12.   


    如果文档结构实在太复杂,用正则会比用DOM复杂得多呢?……
      

  13.   


    区别就是,这是一个完整的框架,包括callback的完整操作。而现在的你根本不会写,否则你就不会问这个问题。
      

  14.   

    fenghou1st你好,我有个问题请教你,我看到你已经解决用程序重启路由的问题,刚好我也有这个需要,不知道能不能把你的解决方案发给我一个呢?,万分感谢!
      

  15.   

    今天无意中看到,确实有创建document的方法,你们怎么不告诉我?var doc = document.implementation.createDocument("", "", null);http://www.w3.org/TR/DOM-Level-3-Core/core.html#Level-2-Core-DOM-createDocument