<script type="text/javascript" src="AJA.js"></script>
<script type="text/javascript">
function funa(){
sendDate({
url:"table?send="+Math.random(),
success:function(xml){
var table = document.getElementById("table");
var root = xml.documentElement;
var areas = root.childNodes;
for(var i = 0; i<areas.length;i++){
var area = areas[i];
var tr = document.createElement("tr");
for(j=0;j<3;j++){
var td = document.createElement("td");
td.appendChild(document.createTextNode(area.childNodes[j].firstChild.nodeValue));
tr.appendChild(td);
}
table.appendChild(tr);
}
}
});
}
</script>
全部都是正常但就是打不出数据,为什么啊 !
<script type="text/javascript" src="AJA.js"></script>
<script type="text/javascript">
function funa(){
sendDate({
url:"table?send="+Math.random(),
success:function(xml){
var table = document.getElementById("table");
var root = xml.documentElement;
var areas = root.childNodes;
for(var i = 0; i<areas.length;i++){
var area = areas[i];
var tr = document.createElement("tr");
for(j=0;j<3;j++){
var td = document.createElement("td");
td.appendChild(document.createTextNode(area.childNodes[j].firstChild.nodeValue));
tr.appendChild(td);
}
table.appendChild(tr);
}
}
});
}
</script>
</head>
<body onload="funa();">
<table border="1px" cellpadding="0" cellspacing="0" id="table">
<tr>
<td>id</td>
<td>name</td>
<td>sex</td>
</tr>
</table>
</body>
</html>
这是HTML全部代码
先执行一下document.createTextNode(area.childNodes[j].firstChild.nodeValue),看能执行成功么,感觉好像是这里出错了.下面就没走
打出来一个Object
@CQGYT: 那输出一下td.innerHtml
@CQGYT:
tr.innerhtml
table.innerhtml
都输出一下,看看是哪一步没有添加进去.
@发粪图墙: 打出来了我需要的值,但还是没在IE显示出来
@CQGYT: 都打出来了
就是不知道怎么不显示?
打出td显示的是最后的字符串
打出tr显示的是最后一个tr里面的值
打出table显示一个TBODY和所有的tr td
@CQGYT:
亲,你的table 是新建的,你没有给他父级容器,
就像tr.appendChild(td) 一样,你需要把table也放到一个页面上有的容器里面,
现在你只是创建了一个table但是是在内存里的,没有放到页面上去.
@CQGYT:
类似于 document.getElementByTagName("body")[0].addendChild(table);
把这句加在你的代码的最下面.
@发粪图墙: 加上了他给了我一个对象不支持此属性或方法,我把HTML的全部代码发上来了,你看一下!
@CQGYT:
<html> <head> <title>asdf</title> <script type="text/javascript" src="AJA.js"></script> <script type="text/javascript"> function funa() { var table = document.getElementById("table"); var tr = document.createElement("tr"); var td = document.createElement("td"); td.appendChild(document.createTextNode("123231")); tr.appendChild(td); var td = document.createElement("td"); td.appendChild(document.createTextNode("123231")); tr.appendChild(td); var td = document.createElement("td"); td.appendChild(document.createTextNode("123231")); tr.appendChild(td); table.appendChild(tr); } </script> </head> <body onload="funa();"> <table border="1px" cellpadding="0" cellspacing="0" id="table"> <tr> <td>id</td> <td>name</td> <td>sex</td> </tr> </table> </body> </html>
@发粪图墙: 是不是浏览器有问题啊?
你给我这代码也执行不了?
@CQGYT: 你的是IE几.?
@CQGYT: 只有这个table不行,我用下拉框option都打得出来
@发粪图墙: IE8
可以调试跟踪下,请求是否正常,回调是否正确执行。
另外建议直接用数组拼接html字符串来处理。性能会好很多。
回调完全正常,同时可以用nodeValue得到我需要的值
但我用的是ie浏览器字符串拼接不适合我!
@CQGYT: 字符串拼接跟用什么浏览器无关。既然都正常,你在你的success里面加入debugger;调试一下应该就能发现问题了。
一看这代码很亲切啊,以前就这么写的,这段代码很“原生”,结果就是很容易出错,我给你的建议,1.用Json格式换XML,XML那个解析说实话,容易出错,2.学下Jquery,用Apprend替代JS的appendChild。这是我的一段代码,请参靠:
success: function (data) { var str = "<div id=\"UserList\" style=\"border:1px solid #cfcfcf;background-color:#fefcfc; position:absolute;display:none;z-index: 100000; padding:4px;\">"; for (var name in data) { str += "<div style=\"height:30px; line-height:30px;\">" + name + "</div><ul class=\"clearFix\">"; str += "</ul>"; } } str += "</div>"; $(document.body).append(str);
谢谢!我是一个初学者,Jquery暂时了解有限!
@CQGYT: 把要动态显示的内容拼成一个字符串,比如var str="<tr><td>"+数据1+"</td></tr>";
然后$("#table").append(str),就好了。
<html> <head> <title>asdf</title> <script type="text/javascript" src="AJA.js"></script> <script type="text/javascript"> function funa() { var table = document.getElementById("table"); var tr = document.createElement("tr"); var td = document.createElement("td"); //td.appendChild(document.createTextNode("123231")); td.innerHTML = "123"; tr.appendChild(td); td = document.createElement("td"); //td.appendChild(document.createTextNode("123231")); td.innerHTML = "456"; tr.appendChild(td); td = document.createElement("td"); //td.appendChild(document.createTextNode("123231")); td.innerHTML = "789"; tr.appendChild(td); table.appendChild(tr); } </script> </head> <body onload="funa();"> <table border="1px" cellpadding="0" cellspacing="0" id="table"> <tr> <td>id</td> <td>name</td> <td>sex</td> </tr> </table> </body> </html>
试试这个呢?
还是不行,应该是浏览器的问题,我下了一个火狐就行了,我也不晓得怎么回事了!