完成.closest和.prev两者的方法?

时间:2012-05-01 13:25:27

标签: jquery dom

HTML

<div class="ancestor">
  <div class="sibling"><input class="findMe" /></div>
  <button>find findMe</button>
</div>

或(输入是直接兄弟)

<input class="findMe" />
<button>find findMe</button>

如果单击按钮,有没有找到.findMe的方法?基本上,会检查祖先,先前的兄弟姐妹(第二个片段)和兄弟姐妹中的孩子(第一个片段)。

JS:

$("button").click(function(){
  var btn = $(this);
  // what I'm after...
  var input = btn.findSomethingThatExistsAnywhereAboveMe(".findMe") 
});

1 个答案:

答案 0 :(得分:0)

不使用您提供的代码。

如何让脚本知道你的意思是指特定的.findMe元素,你可以在同一个文档中包含任意数量的这些元素。

但是,如果此标记周围有父元素,那么您可以找到特定的.findMe

<div class="parentElement">
  <div class="ancestor">
    <input class="findMe" />
  </div>
  <button>find findMe</button>
</div>

<div class="parentElement">
  <input class="findMe" />
  <button>find findMe</button>
</div>

然后你可以这样做:

$("button").click(function(){
  var btn = $(this);
  var input = btn.parents(".parentElement").find(".findMe");
});