使用javascript填充选择框
我到处找了,但找不到解决这个问题的办法。我花了几个小时调试,我自己也不知道该怎么做。很抱歉,如果这是一个简单的解决办法,我只是无法得到它 我有一个空的选择框,如下所示:使用javascript填充选择框,javascript,jquery,Javascript,Jquery,我到处找了,但找不到解决这个问题的办法。我花了几个小时调试,我自己也不知道该怎么做。很抱歉,如果这是一个简单的解决办法,我只是无法得到它 我有一个空的选择框,如下所示: <p id='draftChoice' class='hide'> Select draft choice: <select id='draftList'> </select> <input type=submit value='Draft' id='dr
<p id='draftChoice' class='hide'>
Select draft choice:
<select id='draftList'>
</select>
<input type=submit value='Draft' id='draft'>
</p>
但是,我得到一个错误:“UncaughtTypeError:无法读取null的属性'value'”,在这一行:
var draftee = document.getElementById('#draftList').value;
我最好的猜测是,当我填充框时,没有正确定义值,我在这里这样做:
createDraftList = function() {
//$('#right').html("");
//$('#draftList').html("");
for (var i = 0; i < prospectPool.players.length; i++) {
$('#right').append("<h4>" + prospectPool.players[i].name + "</h4><div><p>" + prospectPool.players[i].overall + "<br>" + prospectPool.players[i].position + "<br>" + prospectPool.players[i].playerType);
}
$('#right').accordion();
$('#draftChoice').removeClass('hide');
$(prospectPool.players).each(function() {
$('#draftList').append($("<option>").attr('value',this.name).text(this.name)) + "</option>";
});
};
createDraftList=函数(){
//$('#right').html(“”);
//$('#draftList').html(“”);
对于(变量i=0;i“+prospectPool.players[i].位置+”
“+prospectPool.players[i].玩家类型);
}
$('#右')。手风琴();
$(“#draftChoice”).removeClass('hide');
$(prospectPool.players).each(函数(){
$('#draftList').append($(“”).attr('value',this.name.).text(this.name))+“”;
});
};
作为后续问题,我想对这份草案进行多次“轮次”。当我这样做时,我想更新选择框,以及屏幕上的手风琴(填充在最后一块文本中)。我当前的方法使用了两个注释掉的行。当我这样做时,正确的文本显示出来,但我丢失了我的手风琴格式,我不知道为什么。任何能帮忙的人,我都非常感激 变化
document.getElementById('#draftList')
到
#
仅在CSS中使用。当您按ID抓取元素时,它只需要实际ID。是的,#ID用于CSS和一些JS库(如jQuery)。Vanilla JS只使用id本身,没有磅/哈希符号。谢谢!最简单的事情是很难看到的。时间一到,我就接受答案。知道为什么我在更新#right?时会丢失手风琴吗?@Kyle基本上,$('#right')
对象保留了对某些元素的引用,但当你清除它时,这些引用会丢失。为了找到销毁和重建手风琴的正确方法。@MikeC谢谢你,我让手风琴正常工作了。我感谢你的帮助!对于第一部分,还可以使用var draftee=$(“#draftList”)[0]代码>甚至var draftee=$(“#draftList”).val()代码>。在第二部分。。。您需要关闭
和
标签吗?在你的$('#right')。追加(…
行?@MikeB。谢谢你指出这一点,我没有意识到我没有关闭那些标记。
document.getElementById('#draftList')
document.getElementById('draftList')