HTMLの文字列ですべての画像の配列を作成しようとしています。
以下を使用してみましたが、完全な URL パスが src に存在しない場合、エラーが発生します。
var found = $(html).find('img');
HTMLの文字列ですべての画像の配列を作成しようとしています。
以下を使用してみましたが、完全な URL パスが src に存在しない場合、エラーが発生します。
var found = $(html).find('img');
$("img").each(
function(index) {
theArray.push( $(this).attr("src") );
});
これを試してみてください:
var imgArray = $('img'),
srcArray = [];
console.log(imgArray); // array of imgs
$.each(imgArray, function() {
srcArray.push(this.src));
});
「インスタント」html 要素を作成することにより、シンプルでプレーンな JavaScript でそれを行うことができます。
例:
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)
};
}
これを達成する方法の簡単な概要:
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
誤った閉鎖
});
うまくいけば、これは物事を少しクリアするのに役立ちます.