如何在克隆元素上引用子元素



我正在对DOM元素进行一些测试,测试的结果是元素后代之一。例如:

<div id="myelement" class="some-class">
  <div class="some-child-class"></div>
  <div class="some-other-child-class">
    <div class="grandchild-class"></div>
    <div class="another-grandchild"></div>*
  </div>
</div>

让我们假设:

test(document.getElementById('myelement'));

将返回用星号标记的元素

现在我的问题是:测试程序很重,资源消耗。我不想在不需要时运行它。有时,我克隆一个已经进行了测试的元素(含义 - 我知道测试的结果(,但是由于我获得了对象参考,因此我无法使用它来访问克隆元素上的相关孩子。

是否有任何有效的方法可以以某种方式"保存"从父元素到特定后代元素的相对路径,然后将其"应用"在另一个元素上?

,因此您可以为每个元素分配唯一的ID并在元素ID处的对象中缓存测试结果。但是,我不知道这是否有用。实现示例:

var test=function(el){
  return this[el.id] || (this[el.id]=advancedtesting(el));
}.bind({});

所以您可以做:

test(document.getElementById('myelement'));//caches
test(document.getElementById('myelement'));//returns the cached

您可以使用jQuery。

他们使用的选择器可以采用" nth-child"或" type"的形式(请参阅此处的文档(。

做什么是从您从您开始的相对位置靶向子元素。在您的情况下,如果您想从第一个元素开始,然后转到可以做的明星元素:

$('#myelement').find('div:nth-child(2) > div:nth-child(2)')

这样做的是,它将#MyElement作为您将开始搜索的基础,之后它归结为第二个是DIV的子元素,然后再次进入该DIV的第二个子元素。您可以用不同的基础重复使用该选择器。

相关内容

  • 没有找到相关文章

最新更新