dojo如何查询已从DOM中删除的节点

时间:2013-04-10 18:41:41

标签: dom dojo

从我的测试来看,似乎dojo的query()函数只从作为页面DOM一部分的元素中进行选择。

例如,假设我有一个名为rootNode的节点,其中包含一些具有类someClass的后代。这段代码:

var nodeList = query(".someclass", rootNode);

如果已从DOM中删除rootNode

将返回空的NodeList(当然,如果rootNode是DOM的一部分,它将返回类{{1}的所有节点}。

我的问题:在这种情况下有没有办法使用someClass如果没有,处理此问题的首选方法是什么?在我看来,NodeList的一些方法可以与过滤器一起使用(删除和放置),但这并不完全相同。

2 个答案:

答案 0 :(得分:1)

您可以获得道场 NodeList 作为dojo.query的返回结果。然后,您可以使用nodes.mapnodes.every来查找所需的元素。

http://dojotoolkit.org/reference-guide/1.9/dojo/NodeList.html

答案 1 :(得分:1)

我的回答非常简单:虽然我没有在文档中找到它,但您只需在NodeList上调用query()即可。 e.g。

var nodeList = query.NodeList();
nodeList.push(rootNode);
var results = nodeList.query(yourSelector);

但是请注意:如果yourSelector是唯一ID并且rootNode已从DOM中删除,则它似乎不起作用。其他类型的选择器(类,儿童等)似乎工作。我想知道这是Dojo中的一个错误......