我正在尝试在JavaScript中使用二维数组来存储字符串。但是我无法正确获取值。下面是我的代码。
var commentstore=new Array();
function creating(id,day)
{
if(commentstore[day,id] != null)
{
alert("It already exists: commentstore["+day+"]["+id+"]"+commentstore[day,id] );
var textinput="<div id='closeit'>Comments:<input type='text' name='comm["+day+"] ["+id+"]' value='"+commentstore[day,id]+"'/></div>
<div id='closing' onclick='closecomment("+id+","+day+")'>:)</div>";
}
else
{
var textinput="<div id='closeit'>Comments:<input type='text' name='comm["+day+"] ["+id+"]' /></div>
<div id='closing' onclick='closecomment("+id+","+day+")'>:)</div>";
$('#comm').html(textinput);
}
function closecomment(id,day)
{
comm.style.visibility='hidden';
var str='comm['+day+']['+id+']';
var element = document.getElementById(str);
if(element.value !=null)
{
commentstore[day,id]=element.value;
alert('New values stored: commentstore['+day+']['+id+']'+commentstore[day,id]);
}
}
因此,在上面的代码中,如果commentstore [0,0] ='man',则commentstore [1,0]和[2,0]和[3,0] .... [7,0]也都填充有'man '。 commentstore [0,1]甚至commentstore [4,1]场景都发生了相同的事情。任何人都可以提供任何教程或示例代码,以便我们动态创建javascript 2d数组。提前致谢。
最佳答案
使用commentstore [0] [0]代替commentstore [0,0]。另外,在不需要松散比较的情况下,请使用严格的比较:
var commentstore = [];
function creating(id,day)
{
if(commentstore[day] === undefined) commentstore[day] = [];
if(commentstore[day][id] !== undefined)
{
alert("It already exists: commentstore["+day+"]["+id+"]"+commentstore[day][id] );
var textinput="<div id='closeit'>Comments:<input type='text' name='comm["+day+"] ["+id+"]' value='"+commentstore[day][id]+"'/></div>
<div id='closing' onclick='closecomment("+id+","+day+")'>:)</div>";
}
else
{
var textinput="<div id='closeit'>Comments:<input type='text' name='comm["+day+"] ["+id+"]' /></div>
<div id='closing' onclick='closecomment("+id+","+day+")'>:)</div>";
$('#comm').html(textinput);
}
function closecomment(id,day)
{
comm.style.visibility='hidden';
var element = document.getElementById(str);
if(element.value !== '')
{
commentstore[day][id]=element.value;
alert('New values stored: commentstore['+day+']['+id+']'+commentstore[day][id]);
}
}
编辑:在原始代码中,str未定义,执行失败。您可以通过以下方式对此进行修正:
var element = $('#closeit > input').eq(0);