2011-08-08 8 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

私は、このソリューションは、最も単純かつ最良のものであると考えています。 –

+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_は配列要素ではなく、配列要素であるかどうかです。 – Eric

+0

あなたはそうです、それは本当です! –

関連する問題