Javascript 从生成的选择列表中获取值
我创建了一个函数来生成一个带有选择列表的表。该函数可以工作,但从选择列表中获取值时遇到问题 我设置选择列表的id和onchange函数,如下所示:Javascript 从生成的选择列表中获取值,javascript,html,drop-down-menu,Javascript,Html,Drop Down Menu,我创建了一个函数来生成一个带有选择列表的表。该函数可以工作,但从选择列表中获取值时遇到问题 我设置选择列表的id和onchange函数,如下所示: var selectList = document.createElement("select"); selectList.setAttribute("id", "numSelect"); selectList.setAttribute("onchange", getVal()); 但是,函数找不到id,因此无法获取值:
var selectList = document.createElement("select");
selectList.setAttribute("id", "numSelect");
selectList.setAttribute("onchange", getVal());
但是,函数找不到id,因此无法获取值:
function getVal() {
var sect = document.getElementById("numSelect");
var opt = sect.options[sect.selectedIndex].value;
console.log(opt);
//var totalSect += opt;
//console.log(totalSect);
};
我知道我很接近,但看不到雪茄。“getContent”函数为选择框中的值返回“null”
我希望能够
a) 选择数字时更新总截面计数(“totalSect”),以及
b) 能够读取已完成的表并将其保存到数组中
我知道jQuery使这变得更容易,我迟早会详细分析并学习它,但是有人有一个纯JavaScript的答案吗
在这里拉小提琴:检查这个,让我知道这是否有效
function getVal(ob) {
var opt = ob.options[ob.selectedIndex].value;
console.log(opt);
//var totalSect += opt;
//console.log(totalSect);
};
还有这个
var selectList = document.createElement("select");
selectList.setAttribute("id", "numSelect");
selectList.setAttribute("onchange", "getVal(this)");
参考编写的方式,将onchange属性设置为getVal()函数返回的值。您正在尝试在“选择”框上设置事件侦听器吗?您可能希望使用selectList.addEventListener('change',getVal');这将清除阻止创建选择列表的getVal,但它似乎不会在控制台中返回任何值。由于您多次使用select,因此最好删除ID属性。上面的修复也可以在没有属性的情况下工作。很好!这似乎很有效。你能解释一下为什么去掉ID属性是个好主意,这对getContent函数返回“undefined”有帮助吗?ID在一个页面中只能使用一次。如果我们多次使用同一个ID,有时它可能会出现错误行为,并用于获取getContent中的值,请在此处更新