我在这里有这个功能:
function nameSplit() {
var option_result = document.getElementById("fname").value;
var option_array=option_result.split(" ");
document.getElementById('first_name').value = option_array[0];
document.getElementById('last_name').value = option_array[1];
}
function myFunction() {
var option_result = document.getElementById("fname").value;
document.getElementById("demo").innerHTML = option_result.length;
document.getElementById("demo2").innerHTML = option_array.prototype.length;
}

<form>
<label>Name:</label>
<input type="text" id="fname">
<input type='button' onclick='nameSplit()' value='Change Text'/>
</form>
<br>
<input id="first_name" name="fid" value="" />
<input id="last_name" name="sid" value="" />
<br>
option_result: <p id="demo"></p>
option_array: <p id="demo2"></p>
<button onclick="myFunction()">Try it</button>
&#13;
正如您所看到的,option_array.prototype.length;
没有返回任何内容。所以我不知道解释这个问题的最佳方法,但简而言之,我想确定函数中有多少个数组,并将其作为拉出的数字
document.getElementById('last_name').value = option_array[1];
我希望它能像这样工作:
document.getElementById('last_name').value = option_array[(Number of total arrays)];
如果您运行原始功能并输入&#34; John Doe&#34;它将它分成约翰&#34;和&#34; Doe&#34;,但是如果你将输入更改为&#34; John Doe Jr。&#34;它仍然会以&#34; John&#34;和&#34; Doe&#34;。我想让它回归&#34; John&#34;和&#34; Doe Jr。&#34;
我试图创建一个运行option_array[1] + " " + option_array[2];
的脚本,但如果一个人只使用数组的两个部分,那么第三个部分将返回未定义。
有什么想法吗?
答案 0 :(得分:1)
我认为这个函数是检索我需要的信息的好方法,但是我的老板在我的办公桌前停下来告诉我有一个更简单的方法,并给了我一些研究的信息,所以我继续建立一个新的..
以下是感兴趣的人的代码:
function nameSplit() {
var first_name = document.getElementById("first_name");
var last_name = document.getElementById("last_name");
var fname = document.getElementById("fname");
var myfname = fname.value.trim();
if (myfname.indexOf(" ") < 0)
{
first_name.value = fname.value.trim();
last_name.value = "Undefined";
} else {
first_name.value = fname.value.substring(0, fname.value.indexOf(" "));
last_name.value = fname.value.substring((fname.value.indexOf(" ") + 1), fname.value.length);
}
}
<form>
<label>Name:</label>
<input type="text" id="fname">
<input type='button' onclick='nameSplit()' value='Submit'/>
</form>
<br>
<input id="first_name" value="" />
<input id="last_name" value="" />
感谢您的帮助@jongware