如何根据条件替换 javascript 变量?
How to replace a javascript variable on conditional?
我在 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]
将不存在,条件将失败。
我在 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]
将不存在,条件将失败。