1

我想<div>从 dom 树中删除所有以 xyz 开头的 id。

我知道这可以通过 dojo.query 和 dojo.destroy 完成,但我以前从未使用过这种组合。

我试过这个但它不起作用:

var divNodesWidgets = dijit.findWidgets('[id^="divNodes"]');
dojo.forEach(divNodesWidgets, function(d) {
    d.destroyRecursive(true);
});

var UlWidgets = dijit.findWidgets('[id^="ulNodes"]');
dojo.forEach(UlWidgets, function(u) {
u.destroyRecursive(true);
});

var headingWidgets = dijit.findWidgets('[id^="h1Nodes"]');
dojo.forEach(headingWidgets, function(h) {
h.destroyRecursive(true);
4

3 回答 3

2

如果它只是一个元素,您正在销毁一个小部件还是一个元素,请尝试:

    dojo.forEach(dojo.query('[id^="xyz"]'), function(entry,idx){
     dojo.destroy(entry);
    alert(entry + " Destroyed");
});

或者

dojo.query('[id^="xyz"]').forEach(dojo.destroy);
于 2013-05-08T20:25:20.680 回答
0

你必须使用 Jquery Attribute Starts With Selector [name^="value"]

http://api.jquery.com/attribute-starts-with-selector/

请通过这个,你会知道你必须做什么

于 2013-05-08T13:37:54.083 回答
0

我只是为了使用 AMD 语法而添加了这个答案,因为您使用的是 dojo 1.8.3,否则我会选择 tik27 的第二个建议。

require(["dojo/query", 
         "dojo/dom-construct", 
         "dojo/domReady!"
], function(query, domConstruct){
    query("div[id^='xyz']").forEach(domConstruct.destroy);
});

http://dojo-sandbox.net/psoares/2a702/1

于 2013-05-09T14:11:51.563 回答