Javascript HTML的一个字符串变量中的两个表
AJAX查询返回一个包含两个表的HTML字符串 我想把表1放入第1部分和表2放入第2部分 如果表示两个表的HTML(它们是顺序的,不是嵌套的或任何有趣的东西)存储在变量twoTables中,我如何使用jQuery选择器(或任何其他方法,尽管我试图避免直接的字符串操作)拆分变量 编辑:数据看起来像Javascript HTML的一个字符串变量中的两个表,javascript,jquery,html,html-table,Javascript,Jquery,Html,Html Table,AJAX查询返回一个包含两个表的HTML字符串 我想把表1放入第1部分和表2放入第2部分 如果表示两个表的HTML(它们是顺序的,不是嵌套的或任何有趣的东西)存储在变量twoTables中,我如何使用jQuery选择器(或任何其他方法,尽管我试图避免直接的字符串操作)拆分变量 编辑:数据看起来像 <table id="table1"> ... </table><table id="table2"> ... </table> 。。。 根据 您可以对
<table id="table1"> ... </table><table id="table2"> ... </table>
。。。
根据
您可以对两个表执行两次此操作。根据
var $tables = $(twoTables);
$('#div1').append( $tables[0] );
$('#div2').append( $tables[1] );
你可以为两张桌子做两次
var $tables = $(twoTables);
$('#div1').append( $tables[0] );
$('#div2').append( $tables[1] );
示例:
由于twoTables
表示由两个连续表组成的HTML字符串,因此只需将该字符串发送到jQuery对象,然后通过其从零开始的索引选择每个表DOM元素
也可以将表包装在jQuery对象中
var $tables = $(twoTables);
$tables.eq(0).appendTo('#div1');
$tables.eq(1).appendTo('#div2');
以下是一个仍然使用浏览器本机HTML解析器的非jQuery版本: 示例:
var twoTables='table onetable two';
var$tables=document.createElement('div');
$tables.innerHTML=twoTables;
document.getElementById('div1').appendChild($tables.firstChild);
document.getElementById('div2').appendChild($tables.firstChild);
编辑:使它在DOM插入中真正没有jQuery
示例:
由于twoTables
表示由两个连续表组成的HTML字符串,因此只需将该字符串发送到jQuery对象,然后通过其从零开始的索引选择每个表DOM元素
也可以将表包装在jQuery对象中
var $tables = $(twoTables);
$tables.eq(0).appendTo('#div1');
$tables.eq(1).appendTo('#div2');
以下是一个仍然使用浏览器本机HTML解析器的非jQuery版本: 示例:
var twoTables='table onetable two';
var$tables=document.createElement('div');
$tables.innerHTML=twoTables;
document.getElementById('div1').appendChild($tables.firstChild);
document.getElementById('div2').appendChild($tables.firstChild);
编辑:使其在DOM插入中真正没有jQuery。如果您有一个如下所示的字符串:
var foo = "<table><tr><td>1</td></tr></table><table><tr><td>2</td></tr></table>";
然后,您可以获取每个表,并将它们插入到您希望插入的任何位置:
$("#div1").append(foo[0]); // First table
$("#div2").append(foo[1]); // Second table
如果您有一个如下所示的字符串:
var foo = "<table><tr><td>1</td></tr></table><table><tr><td>2</td></tr></table>";
然后,您可以获取每个表,并将它们插入到您希望插入的任何位置:
$("#div1").append(foo[0]); // First table
$("#div2").append(foo[1]); // Second table
这可能很难看,但这是我想到的第一件事,希望其他人能找到更优雅的解决方案:
var tableEnd = '</table>';
var arr = twoTables.split(tableEnd);
var t1 = arr[0].concat(tableEnd), t2 = arr[1].concat(tableEnd);
div1.innerHTML = t1;
div2.innerHTML = t2;
var tableEnd='';
var arr=twoTables.split(tableEnd);
变量t1=arr[0]。concat(tableEnd),t2=arr[1]。concat(tableEnd);
div1.innerHTML=t1;
div2.innerHTML=t2;
奖金:没有jQuery开销!:) 这可能很难看,但这是我想到的第一件事,希望其他人能找到更优雅的解决方案:
var tableEnd = '</table>';
var arr = twoTables.split(tableEnd);
var t1 = arr[0].concat(tableEnd), t2 = arr[1].concat(tableEnd);
div1.innerHTML = t1;
div2.innerHTML = t2;
var tableEnd='';
var arr=twoTables.split(tableEnd);
变量t1=arr[0]。concat(tableEnd),t2=arr[1]。concat(tableEnd);
div1.innerHTML=t1;
div2.innerHTML=t2;
奖金:没有jQuery开销!:) 您可以将这两个表拆分为一个数组。请查看以下内容:
var s = "<table>Dude!</table><table>What?</table>";
var a = s.match(/<table>.*?<\/table>/gi);
alert(a);
var s=“都德!什么?”;
var a=s.match(/.*?/gi);
警报(a);
因此,表1将位于[0]中,表2位于[1]中。您可以将这两个表拆分为一个数组。请查看以下内容:
var s = "<table>Dude!</table><table>What?</table>";
var a = s.match(/<table>.*?<\/table>/gi);
alert(a);
var s=“都德!什么?”;
var a=s.match(/.*?/gi);
警报(a);
因此,表1将在[0]中,表2将在[1]中。能否添加一个返回数据的示例?能否给出一个从ajax调用中返回的HTML示例?它与“…”类似吗?有没有可能将其从返回单个字符串改为返回JSON对象?如果只能检索字符串变量,那么我认为处理html的唯一方法是通过直接字符串操作。您可能希望遵循返回不同表示形式的建议,可以添加一个返回数据的示例吗?可以给出一个从ajax调用中返回的HTML示例吗?它与“…”类似吗?有没有可能将其从返回单个字符串改为返回JSON对象?如果只能检索字符串变量,那么我认为处理html的唯一方法是通过直接字符串操作。您可能希望遵循返回不同表示形式的建议,例如JSON。考虑通过ReGEX进行HTML解析。@帕特里克DW:Sova正在通过XHR从服务器获取字符串。假设他可以控制服务器响应,那么应该将其视为一个他认为合适的可预测字符串,而不是一个不可分解的恶魔HTML文档;o) 无论如何,您的答案考虑了一个非常简单的
标记。但实际上,您需要考虑在这些开始标记上可能设置的属性。我真的建议不要使用正则表达式,因为浏览器内置了非常快速的HTML解析器,当HTML附加到DOM中时,这些解析器无论如何都必须运行o) @patrick dw:是的,这是一个甜蜜的回答!:D,你是对的,ReGEX没有足够的考虑。考虑通过ReGEX进行HTML解析。@帕特里克DW:Sova正在通过XHR从服务器获得一个字符串。假设他可以控制服务器响应,那么应该将其视为一个他认为合适的可预测字符串,而不是一个不可分解的恶魔HTML文档;o) 无论如何,您的答案考虑了一个非常简单的
标记。但实际上,您需要考虑在这些开始标记上可能设置的属性。我真的建议不要使用正则表达式,因为浏览器内置了非常快速的HTML解析器,当HTML附加到DOM中时,这些解析器无论如何都必须运行o) @patrick dw:是的,这是一个甜蜜的回答!:你是对的,正则表达式没有