我正在尝试以编程方式在Dashcode中设置弹出菜单的值。我可以更改某些静态定义的默认文本/值(来自检查器),但不能添加或删除它们。 初始化视图时,必须使用可变数量的选项。
var popup = document.getElementById('popup');
//popup.options = []; /* Doesn't clear the list */
//popup.options.length = 0; /* Doesn't clear the list */
popup.options[0].text = "Option 1";
popup.options[0].value = "123";
如何修改列表? (LMGTFY答案不需要:)
答案 0 :(得分:1)
我最终解决了这个问题:
//remove all
if (popup.hasChildNodes()) {
while (popup.childNodes.length >= 1) {
popup.removeChild(popup.firstChild);
}
}
//add new
$.each(items, function(i, item) {
var option = document.createElement("option");
option.text = item.name;
option.value = item.id;
popup.appendChild(option);
});
答案 1 :(得分:0)
只是一个刺,但你不能在JavaScript中构建整个弹出窗口并通过传递参数设置下拉/弹出窗口中的项目数。那么当您想要更改任何项目时,可以使用新参数调用JavaScript?
或者我误解了这个问题。
答案 2 :(得分:0)
当我尝试像您一样动态绑定弹出菜单项时, 我看到我分配给弹出菜单项的值是正确的,但是弹出窗口中没有显示任何项目。
有什么我想念的吗? 这是我的代码:
var ddlCurrencyCode = document.getElementById('ddlCurrencyCode');
if(ddlCurrencyCode.hasChildNodes()){
while(ddlCurrencyCode.childNodes.length> = 1){
ddlCurrencyCode.removeChild(ddlCurrencyCode.firstChild);
}
}
for(var i = 0; i< result.rows.length; ++ i){
var row = result.rows.item(i);
var ddlItem = document.createElement(“ddlItem”);
ddlItem.text = row ['key'];
ddlItem.value = row ['value'];
ddlCurrencyCode.appendChild(ddlItem);
}