我用XMLHttpRequest取到了一个页面,然后想获取页面里的某些内容,于是把responseText的值放到一个新建的div节点的innerHTML里。当我想在这个页面里用Id找到某个节点时,发现getElementById只能用在document对象上,无法用在一般的节点上。
当然getElementsByTagName可以用在一般节点上,但还是觉得getElementById方便些。能不能让responseText的值变成一个document对象呢?
当然getElementsByTagName可以用在一般节点上,但还是觉得getElementById方便些。能不能让responseText的值变成一个document对象呢?
document.getElementById
真的在那可不妙了,原页面和现在页面可能都含有那个Id的节点,都在一起的话,连getElementsByTagName都区分不了了啊……
问题是这也影响到了原页面的getElementById、getElementsByTagName等所有函数了。子页面可以只查找div内的,原页面又怎么办呢?
<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就不会被查找到?
$("div", xml.responseXML);
正常思路是什么样的?真心求教 orz
如果文档结构实在太复杂,用正则会比用DOM复杂得多呢?……
区别就是,这是一个完整的框架,包括callback的完整操作。而现在的你根本不会写,否则你就不会问这个问题。