Javascript 我正在为数组分配一个元素,但它显示未定义 var-prev=[]; var计数=0; var数据=“”; $('#添加_ref')。单击(函数(){ var man_val=$.trim($('#manual_ref').val()); 如果($.inArray(man_val,prev))=-1){ 如果(男人!=''){ 计数+=1; prev[1]=人; 警报(prev[i);//问题在这里 数据=“x'+man_val+”; $('ul-rtl-ref-1')。附加(数据); } } } );
为什么不给数组赋值? 如果我写Javascript 我正在为数组分配一个元素,但它显示未定义 var-prev=[]; var计数=0; var数据=“”; $('#添加_ref')。单击(函数(){ var man_val=$.trim($('#manual_ref').val()); 如果($.inArray(man_val,prev))=-1){ 如果(男人!=''){ 计数+=1; prev[1]=人; 警报(prev[i);//问题在这里 数据=“x'+man_val+”; $('ul-rtl-ref-1')。附加(数据); } } } );,javascript,jquery,Javascript,Jquery,为什么不给数组赋值? 如果我写prev[1]=“myvalue”它也不工作。警报总是显示未定义 编辑上推(manu val)显示推送不是一种功能使用 通过追加给定元素并返回数组的新长度来变异数组 编辑:您更改了代码,因此不再有i,因此下面的部分答案不再适用。但您所说的代码在两个方面都不可信: 您说过prev[1]=man_val;之后是alert(prev[1]);显示未定义的,但您显示的代码并非如此 您说过,prev.push会导致一个错误,即push不是一个函数,但在您显示的代码中,pre
prev[1]=“myvalue”
它也不工作。警报总是显示未定义
编辑上推(manu val)显示推送不是一种功能使用
通过追加给定元素并返回数组的新长度来变异数组
编辑:您更改了代码,因此不再有
i
,因此下面的部分答案不再适用。但您所说的代码在两个方面都不可信:
prev[1]=man_val;
之后是alert(prev[1]);
显示未定义的,但您显示的代码并非如此
prev.push
会导致一个错误,即push
不是一个函数,但在您显示的代码中,prev
肯定是一个数组,数组肯定有push
prev
,要么是给它分配一个非数组。但是,由于你没有展示代码,你对代码的描述与代码并不一致
希望下面的内容对您的实际情况有一定的帮助
count+=1;
prev[1]=man\u val;
alert(prev[i]);//问题就在这里
您在那里使用的是i
,而在上面的一行中您使用的是1
。您没有显示任何代码声明或初始化i
,因此我们不知道它可能有什么值,但显然它没有值1
如果您真的想推送到数组,通常的做法是使用push
或分配到prev[prev.length]
。因此您可以使用以下代码:
count += 1;
prev.push(man_val);
console.log(prev);
...
或
但是如果您确实有一个i
(并且您必须在某个地方,或者试图从中读取一个值,这样会导致引用错误
),并且您希望使用它,那么您需要与您使用它的方式保持一致。例如:
prev[prev.length] = man_val; // This will increment `prev.length`
alert(prev[prev.length - 1]); // ...which is why we're using -1 here
我假设
I
从那里的0
开始。我在代码中看不到变量I
。它应该是-
prev[i++] = man_val;
alert(prev[i - 1]);
我找到了答案
我将变量prev更改为prv,并将警报(prev[I]
)更改为警报(prv[count])
我认为javascript问题存在于全局变量中。
我的最终代码是
prev[count] = man_val;
alert(prev[count]);
var-prv=[]
var计数=0;
var数据=“”;
$('#添加_ref')。单击(函数(){
var man_val=$.trim($('#manual_ref').val());
如果($.inArray(man_val,prv))=-1){
如果(男人!=''){
计数+=1;
prv[计数]=人工值;
警报(prv[计数]);
数据=“x'+man_val+” ;
$('ul-rtl-ref-1')。附加(数据);
}
}
}
);
它工作得很好什么是
i
?它在任何地方都没有定义。很抱歉,在我的代码中我不在这里,这是一个错误“编辑上一次推送(manu val)显示推送不是一个函数”你引用的代码不是这样的。在你介绍的代码中,prev
显然是一个数组,数组有push
。所以你没有引用你正在测试的实际代码(第二次,第一次是整个i
的东西)。谢谢兄弟,好的,我把代码改成了原版。但是如果没有我的变量,它也不起作用。Thankspush还显示push不是一个函数。@Farhad:你引用的代码不是。在你引用的代码中,prev
很明显是一个数组,数组有push
。push不是一个函数。这怎么可能……请不要“别告诉我你的javascript被禁用了..哈哈哈..:):):…因为你已经在那里声明了一个数组..而且它应该有一个推送方法..是的,我没有初始化。这里输入的是错误的。如果我写警报(prev[1])
它也显示未定义。@Farhad:与您在问题中显示的代码不同,它不显示。请参阅答案中的更新。+1因为即使我对您的第二点也很确定……如果我将代码var prev=[];
放入$(“#添加_ref”)。单击(函数()
此函数有效。全局数组在我的代码中不起作用。@Farhad:正如我所说,您似乎正在对其进行阴影处理或为其分配其他内容。
prev[i++] = man_val;
alert(prev[i - 1]);
prev[count] = man_val;
alert(prev[count]);
var prv = []
var count = 0;
var data = '';
$('#add_ref').click(function(){
var man_val = $.trim($('#manual_ref').val());
if(($.inArray(man_val,prv))==-1){
if(man_val != ''){
count += 1;
prv[count] = man_val;
alert(prv[count]);
data = '<li id="45" class="as-selection-item"><a class="as-close">x</a> '+ man_val +' <input id="notal_45" class="cls-notal" type="checkbox" value="45" name="notal_chk[]"></li>';
$('#ul-rtl-ref-1').append(data);
}
}
}
);