html代码:
<textarea id="TaAll" rows=11>
</textarea>
<input type="button" Value="Get Results"
onclick="doit();"/>
<textarea id="Tanext" rows=11>
</textarea>
javascript代码:
window.doit = function ()
{
console.log(document.getElementById("TAall").value);
var containertext=document.getElementById("TAall").value.split("\n");
for(var i=0;i< containertext.length;i++)
{
var temp=containertext[i+1].split(" ");
sbray[i]=eval(temp[1].substring(1,temp[1].length));
op[i]=eval(temp[2].substring(1,temp[2].length));
}
Tb = document.frmone.Tanext;
Tb.value = Tb.value +("\n")+sbray.join("\n")+ ("\n")+"Test";
keysbyValue();
}
嗨,在上面的代码中,我有2个文本区域。我在TAall textarea中编写输入并将其拆分并将其子串保存在其他数组sbray []和op []中。直到在textarea中显示containertext []的代码工作正常但是当我试图在其他textarea Tbnext中显示结果sbray []时它不起作用。我正在使用的输入如下,我必须使用这种格式的输入。我想拆分数组并保存所有no的子串。在[[]:
中,在sbray []和右边的“c”中添加左“c”10
1 c1 c2 //i want to save and split the array starting from this line.
2 c3 c4
3 c5 c12
4 c6 c7
5 c8 c11
6 c9 c10
7 c13 c15
8 c14 c16
9 c17 c18
10 c19 c20
提前致谢
答案 0 :(得分:0)
document.getElementById 区分大小写。您的<textarea>
个ID为TaAll
但您正试图通过document.getElementById("TAall")
答案 1 :(得分:0)
document.getElementById
区分大小写,将TAall
更改为TaAll
,并且应该更好。
还有其他一些错误,你不应该使用eval,因为例如temp的范围会丢失。
我尝试让你的脚本有效,你可以在这里查看它的行为:http://jsfiddle.net/KjYpX/
编辑:
我终于明白了你想要的东西,你可以在这里试试这个剧本:http://jsfiddle.net/KjYpX/1/ 它的制作方式较为简洁。
这里是解析你奇怪格式的函数的细节:
var parseMyFormat = function(input){ // we declare a new function
var sbray=[], op=[]; // declaration of two temporary array
(input=input.split('\n')).shift(); // we split input in an array called input containing all lines, and then we shift it, it means we remove the first element.
while(o=input.shift()){ // now, we are gonna make a loop, shift remove the first element but also return it, so we save it in the o variable
sbray.push((o = o.match(/c(\d+) c(\d+)$/))[1]); //we apply a regexp on o to get the two decimal (\d) ids, it returns an array containing for example ['c1 c2','c1','c2'], we save this array in o (because we will not use o anymore), and we push 'c1' in sbray
op.push(o[2]); // we push 'c2' in op
}
return [sbray, op]; // finally we return both arrays so that you can access them easily
}
答案 2 :(得分:0)
您已将TAall
传递给document.getElementById
,但id
为TaAll
。您将收到错误,因为您要求的对象不存在。
此外,您正在从0
迭代到containertext.length-1
,但您要求containertext[i+1]
。由于数组中的最大索引是array.length-1
(基于0的索引),containertext[containertext.length]
会出错。