我有一个函数创建一个数组,其中包含来自 HTML DOM 方法的返回值:window.document.getElementById()
function makearray1(){
var array1=[1,window.document.getElementById('divID'),['a','b'],[1,2]];
}
然后我将数组传递给另一个函数
use(array1)
function use(xxx){
xxx[1].innerHTML=xxx[2][0];
}
并且'a'写在适当的div中
后来我决定把数组放在一个表单中,然后使用php将它发布到服务器上的一个txt文件中:
JSON.stringify(array)
所以现在我使用 AJAX 在页面的其余部分加载等之后从 txt 文件中调用数据......并且根本不包括用于制作数组的原始函数。
所以我的php基本上是这样的:
$a1='use(';
$data1 =file_get_contents("text_file.txt") ;
$a2=')';
echo $a1.$data1.$a2;
和响应文本:
var n= XMLHttpRequestObject.responseText;
eval(n);
这几乎意味着:
use(text_file)
function use(xxx){
xxx[1].innerHTML=xxx[2][0];
}
问题是文本文件中的数组如下所示:
[1,null,['a','b'],[1,2]]
代替:
[1,window.document.getElementById('divID'),['a','b'],[1,2]]
我的问题:有什么方法可以做与我在这里尝试做的等效的事情,即立即使用 AJAX/php 在数组中复制 HTML/DOM 方法的返回值?
澄清一下:这是一个简单的例子。我实际上有一个巨大的多维数组,其中已经建立了指针或预取的 DOM 节点。现在我正在尝试在使用 ajax 加载文本版本时复制数组。我正在寻找一种递归方法来更改所有空分配,这些分配将立即获取适当的 DOM 节点。很可能我需要用响应文本来做,但希望我可以用 php 部分来做。