如何使用jQuery在加载了ajax的html文件中循环遍历多个表
我正在尝试将响应数据解析为html格式。数据包含多个表(不是嵌套表)。我使用ajax加载html,并尝试使用jquery循环遍历数据 当我以“table”开始循环时(我有多个表,并且没有表的ID),问题是没有结果。当我使用“tr”时,它在firefox和chrome中运行良好,但在IE中不起作用 我想知道如何循环浏览这些表格。 这是我尝试的代码如何使用jQuery在加载了ajax的html文件中循环遍历多个表,jquery,html,ajax,html-table,Jquery,Html,Ajax,Html Table,我正在尝试将响应数据解析为html格式。数据包含多个表(不是嵌套表)。我使用ajax加载html,并尝试使用jquery循环遍历数据 当我以“table”开始循环时(我有多个表,并且没有表的ID),问题是没有结果。当我使用“tr”时,它在firefox和chrome中运行良好,但在IE中不起作用 我想知道如何循环浏览这些表格。 这是我尝试的代码 <html> <head> <title>Html table tParser</title> &l
<html>
<head>
<title>Html table tParser</title>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script language="JavaScript">
$(document).ready(function(){
$.ajax({
url: "htmltables.html",
cache: false,
success: function(html)
{
//alert( (html.length));
//alert( $(html).find('table').size() );
$(html).find('table').each(function(index)
{
document.write('<br />'+'<br />'+ 'Table:' + index + '<br />')
$(this).find('tr').each(function(index) {
document.write('<br />'+'<br />'+ 'Row :' + index + '<br />');
$(this).find('td').each(function(index) {
document.write($(this).text() + '<br />');
}); //td
}); //tr
}); //table
} //success
}); // $.ajax(
});//$(document).ready(function
</script>
</head>
<body>
</body>
</html>
/*------------------------------ */
/* Here is the sample html file I was trying to parse*/
<html>
<head>
<title></title>
</head>
<body>
<table width="200" border="1">
<tr>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td>2</td>
<td>2</td>
<td>2</td>
</tr>
<tr>
<td>3</td>
<td>3</td>
<td>3</td>
</tr>
</table>
<table width="200" border="1">
<tr>
<td>4</td>
<td>4</td>
<td>5</td>
</tr>
<tr>
<td>5</td>
<td>4</td>
<td>5</td>
</tr>
<tr>
<td>6</td>
<td>4</td>
<td>5</td>
</tr>
</table>
</body>
</html>
Html表格转换器
$(文档).ready(函数(){
$.ajax({
url:“htmltables.html”,
cache:false,
成功:函数(html)
{
//警报((html.length));
//警报($(html).find('table').size());
$(html).find('table').each(函数(索引)
{
document.write(“
”+”
“+”表:“+index+”
”)
$(this).find('tr').each(函数(索引){
document.write(“
”+”
“+”行:“+index+”
”);
$(this.find('td')。每个(函数(索引){
document.write($(this.text()+'
');
});//td
});//tr
});//表
}//成功
});//$.ajax(
});//$(文档).ready(函数)
/*------------------------------ */
/*下面是我试图解析的示例html文件*/
1.
1.
1.
2.
2.
2.
3.
3.
3.
4.
4.
5.
5.
4.
5.
6.
4.
5.
您可以将表添加到隐藏元素,然后解析它:
var wrapper = $('<div>').hide().appendTo(document.body);
// [...]
success: function(html) {
wrapper.append(html);
var table = wrapper.find('table');
alert(table.length); // should be at least 1
// parse the HTML here
wrapper.show(); // will reveal the html
}
var wrapper=$('').hide().appendTo(document.body);
// [...]
成功:函数(html){
append(html);
var table=wrapper.find('table');
警报(table.length);//应至少为1
//在这里解析HTML
wrapper.show();//将显示html
}
也许可以试试
$(html).wrap('<span>').parent().find('table')
$(html).wrap(“”).parent().find('table'))
yikes,格式化您的代码!请将其缩进4个空格!谢谢,它可以工作,但在Chrome和Firefox中存在一些问题。除了“wrapper.show()”IE只是打印“Table0”,我如何在IE中也能做到这一点?为什么“table”在没有附加到DOM的情况下不能工作,但“tr”仍然可以工作?谢谢,这在Chrome和Firefox中工作得很好。IE只是打印“table 0”这在IE中现在可以工作,document.write是个问题。还有一个问题,即以相反的顺序处理表格,最后一个表格t?我使用,$(html).wrap(“”).parent().find('table')。每个(函数(索引){是否有任何错误?在一个span中包装一个表?至少使用一个div。