0

HTMLの文字列ですべての画像の配列を作成しようとしています。

以下を使用してみましたが、完全な URL パスが src に存在しない場合、エラーが発生します。

var found = $(html).find('img');
4

4 に答える 4

0
$("img").each(
      function(index) {
         theArray.push( $(this).attr("src") );
      });
于 2012-04-16T03:04:48.200 に答える
0

これを試してみてください:

var imgArray = $('img'),
    srcArray = [];

console.log(imgArray);  // array of imgs

$.each(imgArray, function() {
   srcArray.push(this.src));
});
于 2012-04-16T03:08:15.840 に答える
0

「インスタント」html 要素を作成することにより、シンプルでプレーンな JavaScript でそれを行うことができます。

  1. 要素を作成する
  2. 文字列を innerHTML として挿入します
  3. ノードを照会する

例:

var html = "<html><body><img src='/img1.png' /><br /><img src='/img2.png' /></body></html>";

var node = document.createElement("div");
node.innerHTML = html;

for(var i=0; i < node.children.length; i += 1) {
    if (node.children[i].tagName === 'IMG') {
        alert(node.children[i].src)
    };
}
于 2012-04-16T03:16:33.983 に答える
0

これを達成する方法の簡単な概要:

jQueryのDOM Ready機能で開く→

$(function(){

found要素のコレクションを保持する変数を作成します。

  var found = $('p > img');

結果を保持する空の配列を作成します。

  var results = new Array();

要素のそれぞれを繰り返しますfound

  $.each(found, function(index,value){

見つけた「値」 (アイテム) ごとに、src を取得し、その src を配列にプッシュします。

   results.push($(value).attr('src'));     

誤った閉鎖

   });

配列内の項目の合計量を警告します。

  alert('There is a total of '+results.length+' results in the Array.');

配列に追加した 3 番目のアイテムの src だけをアラートします。

  alert('The src of the 3rd item is: '+results[2]); //3nd item in array, indexes are 0 based

誤った閉鎖

});

うまくいけば、これは物事を少しクリアするのに役立ちます.

于 2012-04-16T03:09:08.837 に答える