0

簡単なulリストがあります

  <ul id="gallery">
    <li><a href=""><img src="images/01.jpg" /></a></li>
    <li><a href=""><img src="images/02.jpg" /></a></li>
    <li><a href=""><img src="images/03.jpg" /></a></li>
    <li><a href=""><img src="images/04.jpg" /></a></li>
  </ul>

li(およびその内容)を配列に追加し、liを削除してから、これを使用しているconsole.logで配列を表示したいと思います。

  $(function(){

    var imgArr=[];

    $('#gallery li').each(function(){
      imgArr.push($(this));
      $(this).remove();
    })

    console.log(imgArr);

  })

console.logにliが含まれているリストが表示されると思いました

    <a href=""><img src="images/01.jpg" /></a>

代わりに、Object[1]のリストを取得しています

これは、liとコンテンツを追加する正しい方法ですか?

配列の内容を表示するにはどうすればよいですか?

4

5 に答える 5

3

jQuery オブジェクトを配列にプッシュしています。imgArr.push(this)代わりimgArr.push($(this))に DOM ノードをプッシュする代わりに使用します。

デモ: http://jsfiddle.net/5rAeH/

デモでは、あなたを削除し.each、代わりに使用しました

var imgArr = $.makeArray($('#gallery li'));
console.log(imgArr);

$("#gallery li").remove();
console.log(imgArr);
于 2012-11-26T15:22:37.547 に答える
1

プッシュを次のように変更します

imgArr.push($(this).html());

ここで、Jquery オブジェクトではなく、html を配列にプッシュします。

于 2012-11-26T15:23:07.620 に答える
1

コードを変更する必要があります。配列に「this」のみを追加する必要があります。

$(document).ready(function(){
  var imgArr=[];
  $('#gallery li').each(function(){
    imgArr.push(this);
    $(this).remove();
  })
  console.log(imgArr);
});​
于 2012-11-26T15:28:58.640 に答える
1

配列の内容を(javascript オブジェクトではなく) htmlとして出力するには、次のようにします。

$('#gallery li').each(function() {
    console.log(index + ': ' + $(this).html());
});
于 2012-11-26T15:29:36.743 に答える
0
$(function(){
    var imgArr=[];

    $('#gallery li').each(function(i,elm){
        imgArr[i] = elm.outerHTML;
        $(elm).remove();
    });
    console.log(imgArr);
});

フィドル

于 2012-11-26T15:32:35.677 に答える