使用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')