2011-08-08 47 views
0

它是我的一次。我如何從定義的數組中調用數據?Jquery,與數組一起工作

var myArray = new Array("http://www.gravatar.com/avatar.php", "http://1.gravatar.com/avatar/", "http://0.gravatar.com/avatar/"); 

$('img[src^="DATA FROM myArray"]').remove() 

回答

2
$(myArray).each(function(idx,elem){ 
    /*idx is item index, elem is the item itself*/ 
    $('img[src^="'+elem+'"]').remove(); 
}) 
+0

我相信這個解決方案是simpliest和最好的一個。 –

+0

是的,tnx隊友這個例子工作正常:) –

+0

@Mister X:不要忘記在我的答案中使用更清晰的數組文字符號。 – Eric

0

InArray讓我們來得到一個數組中項目的索引。所以:

myArray[$.inArray("http://www.gravatar.com/avatar.php",myArray)] 
1
var myArray = [ 
    "http://www.gravatar.com/avatar.php", 
    "http://1.gravatar.com/avatar/", 
    "http://0.gravatar.com/avatar/" 
]; 

$('img').filter(function() { 
    var inArray = false; 
    var src = $(this).attr('src'); 
    $.each(myArray, function() { 
     if(src.indexOf(this) == 0) 
      inArray = true; 
    } 
    return inArray; 
}).remove() 

或者你可以只使用正則表達式:

$('img').filter(function() { 
    return $(this).attr('src') 
        .match(/^http:\/\/(www|0|1)\.gravatar\.com\/avatar(\.php)?/i); 
}).remove() 
1

你可以做這樣的事情:

$('img[src^="' + myArray[1] + '"]').remove(); 
2

如果要選擇所有元素,獨立於你想要做什麼和他們在一起,你可以這樣做:

var $elements = $(); 

for(var i = myArray.length;i--;) { 
    $elements.add($('img[src^="' + myArray[i] + '"]')); 
} 

您應該使用數組文本[...],而不是數組構造。

1

也許它的速度更快這樣獲取:

$("img[src]").filter(function() { 
    return $.inArray($(this).attr("src"), myArray) != -1; 
}).remove(); 
+0

這不會做問題。測試是'src' _starts_是否具有數組元素,而不是_is_數組元素。 – Eric

+0

你是對的,那是真的! –