我的javascript代码是:
var headerCell = document.createElement("TD");
var frag = document.createDocumentFragment(),
var select = document.createElement("select");
select.innerHTML = '<select id ="ddl" onchange="somekdfj()"><option value="0">wow</option><option value="1">pls</option></select>';
frag.appendChild(select);
headerCell.appendChild(frag);
row.appendChild(headerCell);
javascript函数:
function somekdfj(){
alert("HI");
}
我是新手。谁能告诉我为什么我无法调用上面的javascript函数?
答案 0 :(得分:1)
您的代码中的以下行不正确:
select.innerHTML = '<select id ="ddl" onchange="somekdfj()"><option value="0">wow</option><option value="1">pls</option></select>';
原因:您要更改选择标记的 innerHTML ,这不会绑定 onchange 之类的事件。为此,您可以将此部分行更改为以下内容:
select.setAttribute("onchange","somekdfj()");
select.setAttribute("id","ddl");
select.innerHTML = '<option value="0">wow</option><option value="1">pls</option>';
答案 1 :(得分:0)
您没有正确创建选择元素,因为在select元素中您添加了另一个select元素,onchange
位于内部元素上导致问题。以下面的方式尝试,如果您使用createElement
方法,或者您可以直接将innerHTML
设置为您要追加已创建元素的父元素
headerCell = document.createElement("TD");
frag = document.createDocumentFragment(),
select = document.createElement("select");
select.id="dd1";
frag.appendChild(select);
headerCell.appendChild(frag);
row.appendChild(headerCell);
var options = [{val: 0, text: "wow"}, {val: 1, text: "pls"}];
for (var i = 0; i < options.length; i++) {
var option = document.createElement("option")
option.value=options[i].val;
option.text=options[i].text;
select.appendChild(option);
}
select.onclick=somekdfj;