单个数组[0]项返回undefined

Jim*_*avs 4 javascript arrays jquery

所有开发者比我聪明,

所以基本上我有一个名字(第一个)输入字段,我想让用户在输入中输入他们的名字和姓氏.之后,我想取第二个值(姓氏)并将值推送到另一个输入hidden(display:none).所以理论上下面的代码应该这样做

var array = [];

var fullname = $("#firstName").value.split(" ");

array.push(fullname);

$("#lastName").value = array[1];

alert(array[1])
Run Code Online (Sandbox Code Playgroud)

例如iI我将"First Last"作为firstName输入中的名称值并分割并推送到数组,如果我提醒它alert(array) or $("#lastName").value = array,它确实会推送正确的值,但是当我尝试提醒或仅设置第2部分时数组[1]它不断变回未定义!?请各位朋友赐教.

Ror*_*san 6

首先,jQuery使用该val()方法来检索表单元素的值.尝试进入value酒店将不会返回任何物品.

除此之外,您的问题是因为您通过将split()(即数组)的结果推送到array以下来创建嵌套数组:

var fullname = $("#firstName").val().split(" ");

var array = [];
array.push(fullname);
console.log(array)
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="firstName" value="Foo Bar" />
Run Code Online (Sandbox Code Playgroud)

相反,只需split()直接使用结果,而无需调用push():

var fullname = $("#firstName").val();

var array = fullname.split(' ');
console.log(array[1]);
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="firstName" value="Foo Bar" />
Run Code Online (Sandbox Code Playgroud)

这显然是一个基本的例子.您还需要确保生成的数组中至少包含2个元素.