如何将HTML下拉列表的文本值设置为外部文本或.js文件中的值/变量。 (将在下拉列表中显示的值)
例如:
<select id="usernameDropDown">
<option value="username1">name1</option>
<option value="username2">name2</option>
<option value="username3">name3</option>
</select>
我试图动态更改上面的值&#34; name1&#34;和&#34; name2&#34;等等来自本地.js文件的值。 目前,我已成功使用以下代码段在html页面上编写的.js文件中的值:
<script src="jstest.js" type="text/javascript"></script>
<script Language='JavaScript'>
document.write(name1)
document.write(name2)
document.write(name3)
document.write(CSRUsername1)
document.write(CSRUsername2)
document.write(CSRUsername3)
</script>
目前.js文件设置如下:
var name1="Alpha"
var name2="Bravo"
var name3="Charlie"
var name4="Delta"
var name5="Echo"
是否有任何方法可以使用文本文件或.js文件中的值设置此文本值? 如果可能的话,我想仅在html / java脚本中保留解决方案..
答案 0 :(得分:2)
您可以尝试设置每个innerText
元素的option
属性:
var s = document.getElementById('names');
s.children[0].innerText = name1;
s.children[1].innerText = name2;
s.children[2].innerText = name3;
请参阅此Fiddle。
请注意,您需要知道哪个孩子在哪里(例如select
的第一个孩子是name1
等)。
选择子项的另一种方法是为每个选项设置ID属性,并在每个document.selectElementById
元素上使用option
。
答案 1 :(得分:2)
从头开始创建选项并将其添加到下拉列表中。标签是文本,值是值。
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);
}
}
答案 2 :(得分:2)
以下是动态加载下拉列表 [Fiddle]的方法。
HTML
<select id="usernameDropDown">
<option>Choose a user</option>
</select>
的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);
}
答案 3 :(得分:1)
我的想法:
HTML:
<select id="usernameDropDown">
<option value="username1">name1</option>
<option value="username2">name2</option>
<option value="username3">name3</option>
</select>
使用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];
}
}
javascript将'innerHTML'属性设置为从数组中取出的名称字符串。不像Dissident Rage的版本那么优雅但更短:D
答案 4 :(得分:1)
这是一个非常快速的jQuery方法,你可以使用
更新版本: 它会从您的阵列动态更新您的选择 fiddle
您的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>");
}
答案 5 :(得分:0)
$("#usernameDropDown option").each(function(){
if($(this).html() == "name1")
{
$(this).html(name1)
}
if($(this).html() == "name2")
{
$(this).html(name2)
}
if($(this).html() == "name3")
{
$(this).html(name3)
}
});