2013-06-18 3 views
-1

Я пытаюсь найти быстрый способ удаления дубликатов изображений на странице с помощью jQuery.jquery удалить повторяющиеся изображения

У меня есть массив изображений, которые вытягивают, а большинство дублируются или имеют одинаковый URL-адрес.

Я пробовал решение здесь: Filtering duplicate img src with jQuery unique or remove, но он не работает.

Кто-нибудь сделал что-то подобное раньше?

PHP:

public function getWeeklyTrackChartGrid($methodVars) { 
    // Check for required variables 
    if (!empty($methodVars['group'])) { 
     $vars = array(
      'method' => 'group.getweeklytrackchart', 
      'api_key' => $this->auth->apiKey 
     ); 
     $vars = array_merge($vars, $methodVars); 

     if ($call = $this->apiGetCall($vars)) { 
      $i = 0; 


      $loopN = $call->weeklytrackchart->track; 


      foreach ($loopN as $track) { 

       require 'config.php'; 
       //if(++$i > $userLimit*2) break; 


       $albumArtS = $tracks['album']['image']['small'] = (string) $track->image[0]; 
       $albumArtM = $tracks['album']['image']['small'] = (string) $track->image[1]; 
       $albumArtL = $tracks['album']['image']['small'] = (string) $track->image[2]; 

       $playCounts = $tracks[$i]['playcount'] = (string) $track->playcount; 

       ?> 


        <?php if ($playCounts > 1) { ?> 

        <?php if ($albumArtL) { ?> 

         <img src="<?php echo $albumArtL; ?>" /> 

         <?php } ?> 

        <?php } else { ?> 

        <?php if ($albumArtM) { ?> 

         <img src="<?php echo $albumArtM; ?>" /> 

         <?php } ?> 

        <?php } ?> 


       <?php if ($albumArtwork == "yes") { ?> 


        <?php if ($albumArt) { ?> 


        <?php } }?> 



      <?php $i++; 
      } 
      return $tracks; 
     } 
     else { 
      return FALSE; 
     } 
    } 
    else { 
     // Give a 91 error if incorrect variables are used 
     $this->handleError(91, 'You must include a group variable in the call for this method'); 
     return FALSE; 
    } 
} 

JQuery:

$(function(){ 
    var srcs = [], 
     temp; 
    $("img").filter(function(){ 
     temp = $(this).attr("src"); 
     if($.inArray(temp, srcs) < 0){ 
      srcs.push(temp); 
      return false; 
     } 
     return true; 
    }).remove(); 
}); 
+1

Вы можете разместить свой код, пожалуйста? –

+0

код, добавленный выше – danyo

+2

Что делает этот код с jQuery? Thats PHP – Liam

ответ

1

Это решение работает для меня:

var img_array = $("#singleTracks img").map(function() { 
    return $(this).attr("src"); 
}); 
img_array = $.unique(img_array); 
img_array.each(function(index, value){ 
    var sel = '#singleTracks img[src="' + value+ '"]'; 
    var imgs = $(sel).not($(sel + ':first')); 
    imgs.remove(); 
}); 
Смежные вопросы