2011-12-11 12 views
1

リスト項目に画像へのリンクが含まれている順序のないリストがあります。私のコードは現在、リスト項目を反復し、hrefを取得し、banner-holder内に新しい画像コンテナを作成し、srcプロパティを追加します。私が何をしたいか順序なしリストを反復処理しながら、最初のリスト項目をスキップします。 JQuery

は、私はすでにbanner-holder以内にそのイメージを持っていると私はそれを2回追加しないように第1のリスト項目をスキップです。

ありがとうございます。

$('li').each(function() 
    { 
     var bigImage = $(this).find('a.main-img').attr('href'); 

     $('<img/>').attr('src', bigImage).appendTo('#banner-holder'); 

    }); 

答えて

6
$('ul li').not(':first-child').each(function() 
    { 
     var bigImage = $(this).find('a.main-img').attr('href'); 

     $('<img/>').attr('src', bigImage).appendTo('#banner-holder'); 

    }); 
+0

jeez、についても考えていない:first-child。面白い、selectivizrでしばらくの間、そのcss3セレクタを使用して、それとIEの問題で戦っている!ありがとう、本当に私を助けた! –

+0

これはInternet Explorer 9で動作しますか? – danludwig

+0

はい、:first-childはjqueryの対象となり、古いバージョンのIEで動作します。 Cssだけを使用している場合は、selectivizr.jsファイルを組み込む必要があります。これにより、IEの古いバージョンはIE9のように動作し、css3セレクタを使用できるようになります。 Heresどこselectivizrファイルを見つけるhttp://selectivizr.com/ –

2

jQueryのeach methodは、現在の項目のインデックスを渡しますので、あなたはそれを使用することができます

$('li').each(function (index) 
{ 
    if (index > 0) { 
     var bigImage = $(this).find('a.main-img').attr('href'); 

     $('<img/>').attr('src', bigImage).appendTo('#banner-holder'); 
    } 
}); 

それとも、あなたはgt selectorでそれを行うことができます:

$('li:gt(0)').each(function() { 
    ... 
}); 

現在のjQuery documentationにはgtセレクタに関するこのノートがあります:

のため:ネイティブDOM querySelectorAll() 方法によって提供 パフォーマンス向上の利点を取ることができないGT():GT()jQueryの拡張はなく、CSS 仕様の一部、使用するクエリです。最新のブラウザでのパフォーマンスを向上させるには、代わりに $( "your-pure-css-selector")。スライス(インデックス)を使用してください。

1
$('li:not(:first-child)').each(function() 
    { 
    var bigImage = $(this).find('a.main-img').attr('href'); 

     $('<img/>').attr('src', bigImage).appendTo('#banner-holder'); 

    }); 

私はこれをテストするdidntのが、私はそれが動作すると思います。

関連する問題