如何取得<div id="xxx"></div>裡面的內容? document.getElementById("idname").innerTextdocument.getElementById("idname").innerHTML 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 var divs = objText.getElementsByTagName("div");for (var i = 0; i < divs.length; i++){ if (divs[i].getAttribute("idname")) { return divs[i].innerText; }} 4楼那个把所有<div>的标签都扫描了一遍 不行啊,alert(objText);alert(document.getElementById("idname").innerHTML);第一個正確提示捉取的網頁內容,第二個提示就出錯了:此外需要物件 alert(objText.getElementById("idname").innerHTML);這樣寫出錯提示:物件不支緩此屬性和方法 在ie里面请用alert(document.getElementById("idname").innerHTML);在ff里面请用alert(document.getElementById("idname").textContent); 在ie裡的,但是document.getElementById("idname").怎麼能起做用呢?idname不在當前網頁裡,只在objText對象裡面 先把objText 赋给某个div 如document.getElementById('div1').innerHTML = objText;再alert(document.getElementById("idname").innerHTML); <div id=\"idname\">([\s|\S]*?)</div> <div id=\"idname\">([\s|\S]*?)</div>======这个正则怎么用?var objText = xmlHttp.responseText;这样读取的网页内容的objText是字符串来的,是不能用getElementById来操作里面的内容的,我用字符串操作解决了,用split,从<div id="idname">字符将objText分成数组,然后objText[1]取得后半部分内容,再用</div>将objText[1]分成数组,然后objText[0]就是我要的内容了。 先把objText 赋给某个div 如document.getElementById('div1').innerHTML = objText;再alert(document.getElementById("idname").innerHTML);==========这个应该也可以,赋给隐藏的'div1'就是当前网页的一部分了,然后应该可以用getElementById来操作了 <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">[\s|\S]*?<\/div>/; alert(div_str.match(re));}</script> 楼上匹配出来不还是“<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,把问题搞的这复杂 我试过用xml的,但我捉的网页不规范,不是xml格式,会出错,所以只有用text来操作它,正则可以我得把用数组的方法改成用正则 明天试一下正则,不知道行不行,因为内容里面还有很多个<div>的,<div id="idname">csdfaer23<div>42r</div>wqer2<div>?$@#$@#D</div>swweef</div>有机会是这样的, 如果是<div id="idname">csdfaer23<div>42r</div>wqer2<div>?$@#$@#D</div>swweef</div>类型的,那idname的DIV之外不能再有DIV包含,不然就不好处理,可以用:<div id=\"idname\">([\s|\S]*)</div> //tantiancai() 页面表现上div不影响内容嘛,我想当然了~这个正则的问题就象楼上说的那样,idname必须为最外层的div .. <div id="idname">([\s|\S]*)</div>---------上面這個差不多可以,前面的都不行輸出是空,上面這個可以從<div id="idname">開始提取內容,只是結尾超了,如:csdfaer23<div>42r</div>wqer2<div>?$@#$@#D</div>swweef</div><table><tr><td>***其它內容***</td></tr><table><div id="yyyy"></div><div class="zzzzz">idname的DIV之外還有DIV包含的,我要提取的內容是在網頁的中間,前面和後面都還有div的,還有怎麼將<div id="idname">([\s|\S]*)</div>中的idname換成變量?因為idname是文章的id會變化的。 服务器输出用xml格式,这个会错,不是吧. <script>function getDivContent(id) // id 为要获取内容的 id 名{ var div_str = 'dsadasd<div id="idname">csdfaer23<div>42r</div>wqer2<div>?$@#$@#D</div>swweef</div><table><tr><td>***其它內容***</td></tr><table><div id="yyyy"></div><div class="zzzzz">'; div_Temp = document.getElementById("temp") div_Temp.innerHTML = div_str; // 将字符串放到隐藏的 div 中 alert(document.getElementById(id).innerText); //alert(document.getElementById(id).innerHTML);}</script><input type="button" value="GetDiv" onclick="getDivContent('idname');"><div id="temp" style="display:none;"></div>这样行吗?至少 IE 里测试通过了。 在 FireFox 中改成 alert(document.getElementById(id).textContent); 测试通过。 服务器输出用xml格式,这个会错,不是吧.==========當然會出錯,我試過的換成var objText = xmlHttp.responseXML;alert(objXML.xml);這樣得到的值是空,然後接下來的代碼就出錯了,而如果是正確的xml文件會看到整顆樹的, 服务器输出用xml格式,这个会错,不是吧.====是捉別人的網頁內容,不是自己在服務器輸出的網頁 目前我用數組是這樣解決的:var firsttext = objText.split("<div id=\"idname\">");objText=firsttext[1];var twotext=objText.split("</div><table><tr><td>");objText=twotext[0]這樣就得到我想要的內容了 <input type="button" value="GetDiv" onclick="getDivContent('idname');"><div id="temp" style="display:none;"></div>这样行吗?至少 IE 里测试通过了。==========================這樣應該行的,理論上是沒問題的。这个正则的问题就象楼上说的那样,idname必须为最外层的div ..===============idname如果為最外層了就不用處理了啊,直接拿數據就行了。 还是改用DOM方式了,最省事! 是啊~~~这样就好了先把objText 赋给某个div 如document.getElementById('div1').innerHTML = objText;再alert(document.getElementById("idname").innerHTML);==========这个应该也可以,赋给隐藏的'div1'就是当前网页的一部分了,然后应该可以用getElementById来操作了 jqgrid显示数据的问题。 额,没分了。求超链接DOM操作。 求教HTML的问题 一个FLASH中的代码,帮我看看。 关于table中取某一行td值的问题 求救:关于CSS背景颜色的高级问题 confirm的使用? 浮动插件powerfloat影响页面打开的诡异问题 求一段代码,实现一个文本框的值改变,另一个跟着变 請問怎樣獲得本頁的文件名(除文件名其他部分都不要﹐包括在框架中使用正確) 火狐浏览器下,按F5跳转到首页,出现了很奇怪的问题,只有alert一条信息才可成功 JS设置DIV的透明度
for (var i = 0; i < divs.length; i++)
{
if (divs[i].getAttribute("idname"))
{
return divs[i].innerText;
}
}
alert(objText);
alert(document.getElementById("idname").innerHTML);
第一個正確提示捉取的網頁內容,第二個提示就出錯了:此外需要物件
這樣寫出錯提示:物件不支緩此屬性和方法
alert(document.getElementById("idname").innerHTML);
在ff里面请用
alert(document.getElementById("idname").textContent);
但是document.getElementById("idname").怎麼能起做用呢?idname不在當前網頁裡,只在objText對象裡面
再alert(document.getElementById("idname").innerHTML);
======
这个正则怎么用?
var objText = xmlHttp.responseText;
这样读取的网页内容的objText是字符串来的,是不能用getElementById来操作里面的内容的,我用字符串操作解决了,
用split,从<div id="idname">字符将objText分成数组,然后objText[1]取得后半部分内容,
再用</div>将objText[1]分成数组,然后objText[0]就是我要的内容了。
再alert(document.getElementById("idname").innerHTML);
==========
这个应该也可以,赋给隐藏的'div1'就是当前网页的一部分了,然后应该可以用getElementById来操作了
<script>
function getDivContent()
{
var div_str = 'dsadasd<div id="idname">csdfaer2342rwqer2?$@#$@#Dswweef</div>231231';
var re = /<div id="idname">[\s|\S]*?<\/div>/; alert(div_str.match(re));
}
</script>
正确的代码应该是这样的:
<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>
js用responseXML,然后用js的DOM得到这个id='...'的内容,
为什么要用reponseText,把问题搞的这复杂
正则可以我得把用数组的方法改成用正则
<div id="idname">csdfaer23<div>42r</div>wqer2<div>?$@#$@#D</div>swweef</div>
有机会是这样的,
页面表现上div不影响内容嘛,我想当然了~这个正则的问题就象楼上说的那样,idname必须为最外层的div ..
---------
上面這個差不多可以,前面的都不行輸出是空,
上面這個可以從<div id="idname">開始提取內容,只是結尾超了,如:
csdfaer23<div>42r</div>wqer2<div>?$@#$@#D</div>swweef</div><table><tr><td>***其它內容***</td></tr><table><div id="yyyy"></div><div class="zzzzz">idname的DIV之外還有DIV包含的,我要提取的內容是在網頁的中間,前面和後面都還有div的,
還有怎麼將<div id="idname">([\s|\S]*)</div>中的idname換成變量?因為idname是文章的id會變化的。
function getDivContent(id) // id 为要获取内容的 id 名
{
var div_str = 'dsadasd<div id="idname">csdfaer23<div>42r</div>wqer2<div>?$@#$@#D</div>swweef</div><table><tr><td>***其它內容***</td></tr><table><div id="yyyy"></div><div class="zzzzz">'; div_Temp = document.getElementById("temp")
div_Temp.innerHTML = div_str; // 将字符串放到隐藏的 div 中
alert(document.getElementById(id).innerText);
//alert(document.getElementById(id).innerHTML);
}</script>
<input type="button" value="GetDiv" onclick="getDivContent('idname');"><div id="temp" style="display:none;"></div>这样行吗?至少 IE 里测试通过了。
==========
當然會出錯,我試過的
換成
var objText = xmlHttp.responseXML;
alert(objXML.xml);這樣得到的值是空,然後接下來的代碼就出錯了,而如果是正確的xml文件會看到整顆樹的,
====
是捉別人的網頁內容,不是自己在服務器輸出的網頁
var firsttext = objText.split("<div id=\"idname\">");
objText=firsttext[1];
var twotext=objText.split("</div><table><tr><td>");
objText=twotext[0]
這樣就得到我想要的內容了
<div id="temp" style="display:none;"></div>这样行吗?至少 IE 里测试通过了。
==========================
這樣應該行的,理論上是沒問題的。这个正则的问题就象楼上说的那样,idname必须为最外层的div ..
===============
idname如果為最外層了就不用處理了啊,直接拿數據就行了。
再alert(document.getElementById("idname").innerHTML);
==========
这个应该也可以,赋给隐藏的'div1'就是当前网页的一部分了,然后应该可以用getElementById来操作了