我想从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);
答案 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);
});