JavaScript代码:
var ref =dojo.byId("xyz");
var optn = document.createElement("OPTION");
optn.text="txt"
optn.value="val"
ref.options.add(optn);
我想要dojo相当于上面的代码
答案 0 :(得分:7)
我认为那会是:
var ref = dojobyId("xyz");
dojo.create("option", { value: "some", innerHTML: "label of option"}, ref);
刚刚阅读了关于dojo dom函数的documentation,这很简单。
祝你好运!
答案 1 :(得分:2)
您已经在使用Dojo(dojo.byId)。
Dojo不会取代JavaScript(它会增加它)。当JavaScript中的内容已经清晰或简洁时,它并不试图提供替代正常JavaScript方法的替代方法。
在您的示例中,您可以尝试:
dojo.create("option", { text:"txt", value:"val" }, dojo.byId("xyz"));
这会直接在<option>
元素中创建<select>
标记(我假设它是“xyz”)。但是,某些浏览器似乎不喜欢直接添加<option>
标记,而不是将其添加到options
属性。如果是这样,您可以使用add
标记本身的<select>
功能:
dojo.byId("xyz").add(dojo.create("option", { text:"txt", value:"val" }));
请注意,除了调用创建元素的dojo.create
之外,与向<select>
添加选项相关的所有内容都是标准JavaScript。
答案 2 :(得分:2)
由于innerHTML
在IE中不起作用,我做了如下操作:
option = document.createElement('option'); option.text = 'xyz'; option.value = 'val'; dojo.byId('commodities').add(option);
答案 3 :(得分:2)
dijit.byId('mySelect').addOption({ label: 'text' , value: 'val' });
在Dojo 1.6中为我工作
答案 4 :(得分:0)
两个选项:
选项1:
dojo.require("dijit.form.Select");
var ref = dojo.byId("xyz");
dojo.create("option", {
value: "val",
innerHTML:
"label of option"
}, ref);
选项2:
dojo.require("dijit.form.Select");
dojo.ready(function() {
new dijit.form.Select({
name: 'myName',
options: [{{
label: 'xyz',
value: 'val',
selected: true
}]
}).placeAt(dojo.byId("xyz"));
});