0

我今天在这件事上浪费了太多时间。假设我有这样的事情:

<div id="p1" class="hit">
<div id="p2" class="no-hit">
<div id="p3" class="hit">
<div id="p4" class="no-hit">
<div id="p5" class="hit">
el
</div></div></div></div></div>

所以我的元素被传递给一个函数,如果它是 .hit 元素的后代,我想el将最古老的祖先与命中类(在本例中为 #p1)相等。

在 jQuery 中,它就像使用 el.parents(".hit") 并指向最后一个一样简单,但我正在处理遗留代码并且必须使用原型。以下代码适用于 jsfiddle,但在生产中会导致非法令牌错误:

if(item.up('.hit') != undefined){
  while(item.up('.hit') != undefined){
    item = item.up('.hit');
  }
}

请原型,告诉我你有一个简单的方法来完成这个。

4

2 回答 2

0

Prototype 和 jQuery 在这方面是相似的(至少在我对文档的解释中)。您应该也可以在 Prototype 中使用 .up 方法。

您提供的代码也应该适用于 Prototype。你可以在这里看到一个例子。

如果没有,您可以随时尝试 .previous 方法。

于 2012-03-22T22:53:31.933 回答
0
if(typeof item.up('.hit') != 'undefined') {
  while(typeof item.up('.hit') != 'undefined') {
    item = item.up('.hit');
  }
}
于 2012-03-27T05:02:46.020 回答