Jquery 多次选择的返回值

Jquery 多次选择的返回值,jquery,html,Jquery,Html,我正在尝试基于在几个多个选择框中选择的选项构建一个表(使用sql)。以下是我的javascript/jquery代码: function make_table(whichButton) { console.log("Whichbotton = " + whichButton); //var prog = $("#program option:selected").val().join(" "); var prog = $(

我正在尝试基于在几个多个选择框中选择的选项构建一个表(使用sql)。以下是我的javascript/jquery代码:

function make_table(whichButton)
 {
            console.log("Whichbotton = " + whichButton);
            //var prog = $("#program option:selected").val().join(" ");
            var prog = $("#program").val() || [];
            console.log("prog first= " + prog);
            prog = prog.join(" ");
            console.log("prog second= " + prog);
            var sch = $("#school").val() || [];
            sch = sch.join(" ");
            var trm = $("#term").val() || [];
            trm = trm.join(" ");
            var ext = $("#extension").val() || [];
            ext = ext.join(" ");
我的理解是val()获取所有选择的数组,join函数返回一个字符串,用分隔符分隔值。但有些事情不对劲。console.log说,即使在我进行了连接之后,变量prog也没有值(或者只是空白)。怎么了


此外,我将每个变量编码为等于.val()| |[];。。。我这样做是因为jquery站点上的示例就是这样做的。但这意味着什么?jquery规范指出,如果数组为空,那么它会将null作为默认值,那么| |[]是什么意思?

这是一种设置默认值的方法,称为:


因此,
[].join(“”;//等于“”||[]意味着如果val返回null,则选择一个空数组作为元素

其含义与:

if ($("#term").val() == null){
    trm = []
}
else{
   trm = $("#term").val();
}

至于您的问题,您需要确保val()正确返回。尝试记录$(“#term”).val(),看看它是否返回了您期望的结果。如果是,您知道您在其他地方做错了什么,尽管我没有立即看到任何东西

我不明白,变量“something”何时会等于defalt值?为什么它不等于“null”?既然null在JavaScript中是假的,
false或something
将始终是
something
,感谢您的解释。但我仍然有问题,做你说的日志仍然会给我空白的回报…所以你需要仔细检查你的html。也许你在页面上有多个相同的ID?
if ($("#term").val() == null){
    trm = []
}
else{
   trm = $("#term").val();
}