如何在Javascript中指定要复制的内容
我有一个复制下拉列表中内容的小脚本。但是我希望下拉菜单显示firstname,当firstname被选中时,我希望它将lastname复制到外部。我需要使用除如何在Javascript中指定要复制的内容,javascript,html,Javascript,Html,我有一个复制下拉列表中内容的小脚本。但是我希望下拉菜单显示firstname,当firstname被选中时,我希望它将lastname复制到外部。我需要使用除VALUE JS: HTML: 选择一个人: 名字 名字 名字 名字 或者参见此处为每个添加数据姓氏属性: 工作示例(尝试菜单中的第一个选项)为每个添加数据姓氏属性: 工作示例(尝试菜单中的第一个选项)您不应该仅仅为了提供带有附加数据的而滥用元素的id属性。 正如中所建议的,您可以指定一个附加属性,如data lastname,然后在脚
VALUE
JS:
HTML:
选择一个人:
名字
名字
名字
名字
或者参见此处为每个
添加数据姓氏
属性:
工作示例(尝试菜单中的第一个选项)为每个
添加数据姓氏属性:
工作示例(尝试菜单中的第一个选项)您不应该仅仅为了提供带有附加数据的
而滥用元素的id
属性。
正如中所建议的,您可以指定一个附加属性,如data lastname
,然后在脚本中访问该属性(以下代码未经测试)
您的HTML可能看起来像:
<select id="mySelect" onchange="copy();">
<option value="">Select a person:</option>
<option value="firstname" data-lastname="lastname">Firstname</option>
<option value="firstname" data-lastname="lastname">Firstname</option>
<option value="firstname" data-lastname="lastname">Firstname</option>
<option value="firstname" data-lastname="lastname">Firstname</option>
</select>
function copy() {
var sel = document.getElementById('mySelect');
var selected = sel.options[sel.selectedIndex];
var firstname = selected.value;
var lastname = selected.getAttribute('data-lastname');
// do stuff...
}
您不应该仅仅为了向
提供附加数据而滥用元素的id
属性。
正如中所建议的,您可以指定一个附加属性,如data lastname
,然后在脚本中访问该属性(以下代码未经测试)
您的HTML可能看起来像:
<select id="mySelect" onchange="copy();">
<option value="">Select a person:</option>
<option value="firstname" data-lastname="lastname">Firstname</option>
<option value="firstname" data-lastname="lastname">Firstname</option>
<option value="firstname" data-lastname="lastname">Firstname</option>
<option value="firstname" data-lastname="lastname">Firstname</option>
</select>
function copy() {
var sel = document.getElementById('mySelect');
var selected = sel.options[sel.selectedIndex];
var firstname = selected.value;
var lastname = selected.getAttribute('data-lastname');
// do stuff...
}
我不明白这个问题。你能提供一个你想要得到的结果的例子吗?请澄清您的问题。现在脚本将value=''的值复制到下拉列表的外部。我想要名字,所以当我选择这个名字时,我希望它将名字复制到外面。我在你的代码中没有看到任何Firstname
。但是,您似乎不想复制select
元素的值,而是想复制所选option
元素的ID?是的,这就是我需要的。可能是重复的,我不理解问题所在。你能提供一个你想要得到的结果的例子吗?请澄清您的问题。现在脚本将value=''的值复制到下拉列表的外部。我想要名字,所以当我选择这个名字时,我希望它将名字复制到外面。我在你的代码中没有看到任何Firstname
。但是,似乎不是select
元素的值,而是要复制所选option
元素的ID?是的,这就是我所需要的。对于纯javascript解决方案完美来说,@FelixKling MCL的答案的可能副本看起来非常好!这就是我需要的@FelixKling MCL的答案对于纯javascript解决方案来说非常好!这就是我需要的!
<select id="mySelect" onchange="copy();">
<option value="">Select a person:</option>
<option value="firstname" data-lastname="lastname">Firstname</option>
<option value="firstname" data-lastname="lastname">Firstname</option>
<option value="firstname" data-lastname="lastname">Firstname</option>
<option value="firstname" data-lastname="lastname">Firstname</option>
</select>
function copy() {
var sel = document.getElementById('mySelect');
var selected = sel.options[sel.selectedIndex];
var firstname = selected.value;
var lastname = selected.getAttribute('data-lastname');
// do stuff...
}