如何使用dojo 1.8.3删除所有以xyz开头的id的div?

时间:2013-05-08 13:25:23

标签: dojo destroy

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

我知道这可以通过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);

3 个答案:

答案 0 :(得分:2)

你正在摧毁一个小部件或只是一个元素,如果它只是一个元素尝试:

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

dojo.query('[id^="xyz"]').forEach(dojo.destroy);

答案 1 :(得分:0)

您必须使用Jquery Attribute Starts With Selector [name ^ =“value”]

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

请完成此操作,您将了解自己必须做什么

答案 2 :(得分: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