Javascript HTML选择:如何设置下拉文本
如何将HTML下拉列表的文本值设置为外部文本或.js文件中的值/变量。(将在下拉列表中显示的值) 例如:Javascript HTML选择:如何设置下拉文本,javascript,html,select,drop-down-menu,readfile,Javascript,Html,Select,Drop Down Menu,Readfile,如何将HTML下拉列表的文本值设置为外部文本或.js文件中的值/变量。(将在下拉列表中显示的值) 例如: <select id="usernameDropDown"> <option value="username1">name1</option> <option value="username2">name2</option> <option value="username3">name3</option&g
<select id="usernameDropDown">
<option value="username1">name1</option>
<option value="username2">name2</option>
<option value="username3">name3</option>
</select>
是否有任何方法可以使用文本文件或.js文件中的值设置此文本值?
如果可能,我只想将解决方案保留为html/java脚本。您可以尝试设置每个
选项的innerText
属性:
var s = document.getElementById('names');
s.children[0].innerText = name1;
s.children[1].innerText = name2;
s.children[2].innerText = name3;
看这个
请注意,此处您需要知道哪个子项在哪里(例如,select
的第一个子项是name1
,等等)
选择子项的另一种方法是为每个选项设置ID属性,并使用文档。在每个选项元素上选择ElementByID
。从头开始创建选项并将其添加到下拉列表中。标签是文本,值是值
var dropdown = document.getElementById('usernameDropDown');
// if dropdown exists
if(dropdown) {
var usernames = [
{ label: 'name1', value: 'username1' },
{ label: 'name2', value: 'username2' },
{ label: 'name3', value: 'username3' }
];
for(var i=0,l=usernames.length; i<l; i++) {
var username = usernames[i];
var option = document.createElement('option');
option.setAttribute('value',username.value);
var optionText = document.createTextNode(username.label);
option.appendChild(optionText);
dropdown.appendChild(option);
}
}
var dropdown=document.getElementById('usernameDropDown');
//如果存在下拉列表
如果(下拉列表){
变量用户名=[
{标签:'name1',值:'username1'},
{标签:'name2',值:'username2'},
{标签:'name3',值:'username3'}
];
对于(var i=0,l=usernames.length;i,下面是如何动态加载下拉列表
HTML
选择一个用户
Javascript
var select = document.getElementById("usernameDropDown");
var unames = ["Alpha", "Bravo", "Charlie", "Delta", "Echo"];
for (var i = 0; i < unames.length; i++) {
var opt = unames[i];
var el = document.createElement("option");
el.textContent = opt;
el.value = opt;
select.appendChild(el);
}
var select=document.getElementById(“用户名下拉列表”);
变量unames=[“Alpha”、“Bravo”、“Charlie”、“Delta”、“Echo”];
对于(变量i=0;i
我的想法:
HTML:
名称1
姓名2
名字3
Javascript:
window.onload = init;
var names=["Alpha", "Bravo", "Charlie", "Delta", "Echo"];
function init(){
var opts = document.getElementById("usernameDropDown").childNodes;
for (var i=0, i<opts.length, i++){
opts[i].innerHTML = names[i];
}
}
window.onload=init;
变量名称=[“Alpha”、“Bravo”、“Charlie”、“Delta”、“Echo”];
函数init(){
var opts=document.getElementById(“用户名下拉列表”).childNodes;
对于(var i=0,i,这里有一个非常快速的jQuery方法,您可以使用它
更新版本:
它会从阵列中动态更新您的选择
你的HTML
<select id="usernameDropDown">
<option value="username1">Username</option>
</select>
用户名
你的javascript
var name = ["Alpha","Bravo","Charlie","Delta","Echo"];
for(i=0;i<name.length;i++){
$("#usernameDropDown").append("<option value='name" + i + "'>" + name[i] + "</option>");
}
var name=[“Alpha”、“Bravo”、“Charlie”、“Delta”、“Echo”];
对于(i=0;i可能会使用类似Knockout.js的东西?是什么导致选择值发生变化?@Mike,看起来这会起作用。不幸的是,这需要在我必须使用已安装的库的系统上工作…@Mark,Nah不能像上面那样使用Jquery^。太好了!正是我所需要的。我很遗憾在这方面测试了这么多不同的方法,非常感谢!如果我有未知数量的名称/用户名要添加为选项,这肯定会有所帮助。x.appendChild是我所寻找的另一种方法,谢谢!是的,这避免了选择作为答案的方法的潜在问题:如果HTML中的选项少于Javascript预期的,则会出现越界错误。@DissiDentage+1对于一个好答案,我的想法是,如果你知道有多少个选项元素,如果你知道要设置多少变量。你解决了我的问题,也解决了我想采取的下一步——设置每个元素的值。Fiddle也非常清楚。我选择这个元素的唯一原因是它稍微干净r、 这段代码还要求在HTML中预先指定选项,请注意,在小提琴中,选项列表仅填充为“Charlie”。
var select = document.getElementById("usernameDropDown");
var unames = ["Alpha", "Bravo", "Charlie", "Delta", "Echo"];
for (var i = 0; i < unames.length; i++) {
var opt = unames[i];
var el = document.createElement("option");
el.textContent = opt;
el.value = opt;
select.appendChild(el);
}
<select id="usernameDropDown">
<option value="username1">name1</option>
<option value="username2">name2</option>
<option value="username3">name3</option>
</select>
window.onload = init;
var names=["Alpha", "Bravo", "Charlie", "Delta", "Echo"];
function init(){
var opts = document.getElementById("usernameDropDown").childNodes;
for (var i=0, i<opts.length, i++){
opts[i].innerHTML = names[i];
}
}
<select id="usernameDropDown">
<option value="username1">Username</option>
</select>
var name = ["Alpha","Bravo","Charlie","Delta","Echo"];
for(i=0;i<name.length;i++){
$("#usernameDropDown").append("<option value='name" + i + "'>" + name[i] + "</option>");
}