Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript HTML的一个字符串变量中的两个表_Javascript_Jquery_Html_Html Table - Fatal编程技术网

Javascript HTML的一个字符串变量中的两个表

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> 。。。 根据 您可以对

AJAX查询返回一个包含两个表的HTML字符串

我想把表1放入第1部分表2放入第2部分

如果表示两个表的HTML(它们是顺序的,不是嵌套的或任何有趣的东西)存储在变量twoTables中,我如何使用jQuery选择器(或任何其他方法,尽管我试图避免直接的字符串操作)拆分变量

编辑:数据看起来像

<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:是的,这是一个甜蜜的回答!:你是对的,正则表达式没有