我有一个 HTML 格式的名称下拉菜单:
<select id="names" name="nam">
<option>Generic Lastname, Firstname Middle</option>
<option>Doe Jr., Jim</option>
<option>Smith, Christopher Sam=Chris</option>
<option>Wilson, Sue Ann</option>
</select>
<input type="checkbox" id="firstname" value="" checked="checked">
我使用脚本将这些名称解析为以逗号和空格分隔的变量。姓氏、名字(不包括中间名)。
我正在尝试添加昵称。仅当昵称存在时,名字的变量才会被昵称替换,但如果昵称变量不存在,则保持不变。
例如,在上面的代码中,Christopher 将被 Chris 替换,但其他每个选项都将保留各自的名字。我不知道如何交换变量。
另外,每个选项中都需要“=”吗?或者如果不存在“=”, split 函数可以将变量读取为 null 吗?我还不熟悉条件。请耐心等待我。我尝试将 IF 放入代码中,但没有成功。
代码如下:
var nam=document.forms[0].nam.value;
var half_array=nam.split(",");
var first_array=half_array[1].split(" ");
document.getElementById('firstname').value = first_array[1];
最佳答案
我可能会采取完全不同的方法,但我也不太确定您如何构建数据。
中间名(如果存在)将是 first_array
中的第二个元素,因此您可以从检查它开始。
var nickname,
nameToDisplay = first_array[1];
if (first_array[2]) {
// split on `=` if we have a middle name
nickname = first_array[2].split("=");
}
如果 =
存在,则此人的昵称将是 nickname
中的第一个元素。
if (nickname[1]) {
nameToDisplay = nickname[1];
}
如果 =
不存在,则 nickname[1]
将不存在,条件将失败。
关于javascript - 如何根据条件替换 JavaScript 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29439228/