2011-07-16 3 views
0

Как получить определенные изображения; если изображения названы:
, если img attr scr имеет определенное слово

pc_monitor_24.jpg 
mac_monitor_23.jpg 
pc_mouse_23.jpg 

, выбрав только часть имени?

Схватив вход как текстовой:
, если введен «pc»

$('.textarea').keyup(function(){ 
    var getName = $(this).html(); 
}); 

$('img.imgResult').attr('src', getName+'.jpg'); // this works but only if full name entered 

Использование ~selector

Можно ли получить количество соответствующих изображений и печатать их на экране?
Я appretiate любое хорошее предложение, спасибо

ответ

4
var matchingImages = $('img.imgResult[src~="' + getName + '"]'); 

// Now you can loop over matchingImages using e.g. $.each 
// and call attr('src') to get the source for each one. 
2

Там может быть более кратким способом сделать это, но если все остальное не всегда можно просто проверить атрибут src каждого из них:

$('.textarea').keyup(function(){ 
    var matchingImages = []; 
    var getName = $(this).html(); 
    jQuery.each($('img.imgResult'), function() { 
     if (this.src.indexOf(getName) != -1) { 
      matchingImages.push(this); 
     } 
    }); 
    alert("Found " + matchingImages.length + " images."); 
}); 
1

Эти имена начинаются со слова, которое вы нашли. Поэтому следует использовать селектор стартового согласования:

$('img.imgResult[src^="' + getName + '_"]').each(function() { /* ... */ }); 
Смежные вопросы