1

jQuery を使用して、次のようなリスト アイテムの典型的なコレクションを作成しています。

HTML

<ul id="slides">
  <li>Slide 1</li>
  <li>Slide 2</li>
  <li>Slide 3</li>
  <li>Slide 4</li>
</ul>

jQuery

var $slides = $('#slides li');

私がやりたいのは、たとえばコレクション内で現在表示されているスライドを特定し、そのスライドから次のスライドに移行することです。

以下はJust Work™だと思っていましたが、変数はオブジェクト参照ではなく$current、ターゲット スライドのマークアップの文字列リテラルを保持しています。

jQuery

var $current = $slides[0];
    console.log($current); // returns "<li>Slide 1</li>" and not [object]

ここで何が間違っているのかわかりません。

上記は、コレクションで選択したオブジェクトへの一意の参照を提供することを期待していましたが、ここで jQuery がそのように機能しない理由が理解できず、代わりに文字列を提供することにしました。

4

3 に答える 3

1

試す

$(function()
{
    var $slides = $('#slides li');
    var $current = $($slides[0]);
    console.log($current); 
});

との違いは$('#slides li')$('#slides')最初は常に を選択し、 2 番目はasli object全体を選択するだけなので、常に が返されるため最初に asにアクセスすることはできません。ul#slidesobjectli$slides[0]ul object

于 2013-02-28T11:36:54.230 に答える
0

要素への参照です。ただし、コンソールに表示されているのは、その要素のブラウザー依存の文字列表現です。この場合、そのouterHTML.

この jsFiddle demoのコンソール出力を見てください。

于 2013-02-28T11:37:50.080 に答える
0

次のようにしてみてください。

 var $slides = $('#slides li');
 var $current = $slides[0];

たとえば、次のように現在のスライドを操作できます。

 $($current).fadeOut();

編集:Dipesh Parmarの回答を見たところ、それもできます;)

jquery でその文字列をオブジェクトとして使用する必要がある場合は、$() 内に配置してください。

于 2013-02-28T11:40:19.247 に答える