日期:2014-05-16  浏览次数:20510 次

如何取得<div id="xxx"></div>裡面的內容?
使用javascript捉取網頁內容
xmlHttp   =   new   ActiveXObject( "MSXML2.XMLHTTP ");,
.....
var   objText   =   xmlHttp.responseText;
--------------------

objText正確取得網頁的內容,其中有 <div   id= "idname "> xxxxxxx </div> 這樣的內容,請問怎麼樣取得id= "idname "裡頁的內容xxxxxxx?
因為是responseText的,我用getElementById沒起作用。

------解决方案--------------------
document.getElementById( "idname ").innerText
document.getElementById( "idname ").innerHTML
------解决方案--------------------
2楼正解.
------解决方案--------------------
var divs = objText.getElementsByTagName( "div ");
for (var i = 0; i < divs.length; i++)
{
if (divs[i].getAttribute( "idname "))
{
return divs[i].innerText;
}
}
------解决方案--------------------
4楼那个把所有 <div> 的标签都扫描了一遍
------解决方案--------------------
在ie里面请用
alert(document.getElementById( "idname ").innerHTML);
在ff里面请用
alert(document.getElementById( "idname ").textContent);


------解决方案--------------------
先判断有没有这个控件
------解决方案--------------------
先把objText 赋给某个div 如document.getElementById( 'div1 ').innerHTML = objText;
再alert(document.getElementById( "idname ").innerHTML);
------解决方案--------------------
<div id=\ "idname\ "> ([\s|\S]*?) </div>
------解决方案--------------------
楼上匹配出来不还是“ <div id= "idname "> csdfaer2342rwqer2?$@#$@#Dswweef </div> ”嘛。楼主的意思是要 <div> 标记包含的内容,标记本身是不需要的。
正确的代码应该是这样的:
<input type= "button " value= "GetDiv " onclick= "getDivContent(); ">
<script>
function getDivContent()
{
var div_str = 'dsadasd <div id= "idname "> csdfaer2342rwqer2?$@#$@#Dswweef </div> 231231 ';

var re = / <div id= "idname "> (.*?) <\/div> /;
re.exec(div_str);
alert(RegExp.$1);
}
</script>
------解决方案--------------------
既然是要标记里面的内容,那就用xml传数据啊
js用responseXML,然后用js的DOM得到这个id= '... '的内容,
为什么要用reponseText,把问题搞的这复杂
------解决方案--------------------
如果是 <div id= "idname "> csdfaer23 <div> 42r </div> wqer2 <div> ?$@#$@#D </div> swweef </div> 类型的,那idname的DIV之外不能再有DIV包含,不然就不好处理,可以用:

<div id=\ "idname\ "> ([\s|\S]*) </div>
------解决方案--------------------
服务器输出用xml格式,这个会错,不是吧.
------解决方案--------------------
在 FireFox 中改成 alert(document.getElementById(id).textContent); 测试通过。
------解决方案--------------------
因为存在嵌套的问题,所以我觉得正则表达式可能会有问题的。
------解决方案--------------------
还是改用DOM方式了,最省事!