在jQuery中,您可以轻松地从原始HTML创建DOM节点。这在使用模板时特别有用。
Dojo中的等价物是什么?
(仅供参考:我正在将一些东西从jQuery迁移到Dojo。原始HTML是从Underscore.js模板生成的,我想避免丢弃它们。)
[更新时间:2012-01-19 7:17 pm GMT + 8] 根据@esailija的评论,dojo.toDom确实相当于jQuery(html) - 不幸的是,它只被添加到Dojo 1.7中,而我却被Dojo 1.6所困扰。更新了问题以反映版本。
答案 0 :(得分:6)
我想也许您正在寻找的是dojo.place
和dojo._toDom
的组合(在> = 1.7中没有下划线)。
toDom
函数接受字符串并将其转换为DOM元素或文档片段。
n = dojo._toDom("<li>foo</li>"); // n is a single DOM node
n = dojo._toDom("foo"); // n is a DOM text node
n = dojo._toDom("<li>foo</li><li>bar</li>"); // n is a DOM document fragment
place
函数也需要一个字符串和一个目标。
dojo.place("<li>foo</li>", dojo.byId("baz")); // li element is added to
// element with id "baz"
dojo.place("<li>foo</li>", "baz"); // Same as above.
dojo.place("foo", "baz"); // Note: Element with id "foo"
// is placed in element with
// id "baz"
dojo.place(dojo._toDom("foo"), "baz"); // Text node "foo" is placed
// in element with id "baz"
请注意第三个示例:如果字符串不以<
开头,则将其视为文档中其他位置的元素的ID。
顺便说一句,dojo.place
函数也采用第三个位置参数,可以是“第一个”,“最后一个”,“替换”,“之前”,“之后”(可能还有其他一些东西)。
答案 1 :(得分:2)
那将是create方法。