我有一个服务返回一个HTML片段,其中有一个div类“customerID”,在我将此代码附加到DOM之前,我需要检查模型中是否有customerID,如果没有,我需要需要在剪切中找到div并将其删除。
这是如何实现的?
答案 0 :(得分:1)
尝试使用:
dojo/dom-construct
dojo/query
dojo/NodeList-dom
(加载它会启用orphan()
方法)换句话说,可能是:
var tempNode = domConstruct.toDom("<div>Hello world.</div>"); // Make a DOM fragment
var custDivList = query("div.customerID", node); // Find the problem divs and return nodeList
var removedNodes = custDivList.orphan(); // Remove each node in the list from its place
var scrubbedHtmlString = tempNode.innerHTML; // Get the final result
答案 1 :(得分:1)
与其他答案所表明的一样,它可能最好解析您拥有的代码段并使用dom操作方法删除您需要的内容。这类似于@Darien的回答,但我的回答包括所需的依赖关系,并且是一个有效的例子。
require([
'dojo/dom-construct',
'dojo/query',
'dojo/NodeList-dom', // provides query(...).orphan()
'dojo/domReady!'
], function(dom_construct, query) {
// get your html snippet; hardcoded here for convenience and example
var html_snippet = [
'<div>',
'<div class="customerID">customerID</div>',
'<div class="content">other content</div>',
'</div>'
].join(''),
has_customerid = false;
var node = dom_construct.toDom(html_snippet);
if (!has_customerid) {
query('.customerID', node).orphan();
}
document.body.appendChild(node);
});
解析您的代码段,检查是否存在customerID
,如果不存在则删除指定的节点。
Here's a fiddle这样你就可以玩has_customerid
并对节点做任何你需要的事情。您可能想要验证query(...)
的结果;我遗漏了任何错误检查。
答案 2 :(得分:-1)
如果你有JQuery,你可以这样做:
var html = $(htmlSnippet);
if(!modelHasCustomerID){
$(".customerID", html).remove();
}
container.append(html);
我对dojo不是很熟悉但是相信这可以用dojo.create,dojo.destroy和dojo.query来完成。