2

jQuery の .closets() に問題があります

jQueryのドキュメントで、私はそれのように使用できると教えてください。

<!DOCTYPE html>
<html>
<head>
  <style></style>
  <script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
  <ul><li></li><li></li></ul>
<script>
  var close = $("li:first").closest(["ul","body"]);
  alert(close.length);
  </script>
</body>
</html>

http://api.jquery.com/closest/#closest2

この部分では、ul と body に関する情報を取得します。li の 2 つのステップです。

var close = $("li:first").closest(["ul","body"]);

しかし、それは機能しません。クローズ内には何もありません。空です。何が間違っていますか? jQuery ドキュメントのコードも間違っています。この例は機能しません。

4

2 に答える 2

3

ドキュメントを読み直してください:

この署名(のみ!)は、jQuery1.7で非推奨になりました。このメソッドは、主に内部またはプラグインの作成者が使用することを目的としています。

jQuery1.7より前の例

jQuery1.7以降の例

于 2012-09-20T19:37:10.753 に答える
1

最も近いulと最も近いbodyを選択しようとしている場合は、代わりに使用する必要があります。現在使用しよう.parents():firstしているメソッドは、最近のバージョンのjQueryでは削除されています。

http://jsfiddle.net/MYjRm/

var close = $("li:first").parents("ul:first,body:first");
  $.each(close, function(i){
  $("li").eq(i).html( this.nodeName );
});​

.closest()定義上、1つの要素しか選択できません。2つを探しているので、1つ.parents()以上を選択できるものを使用する必要があります。

単に1つの要素を選択したい場合は、.closest()その1つの要素を選択するセレクターで使用します。$("li:first").closest("ul");

于 2012-09-20T19:50:08.190 に答える