我希望用HTML字符串创建一个包含所有图像的数组。
我尝试过使用以下内容,但如果src中没有完整的URL路径,则会产生错误。
var found = $(html).find('img');
答案 0 :(得分:0)
$("img").each(
function(index) {
theArray.push( $(this).attr("src") );
});
答案 1 :(得分:0)
试试这个:
var imgArray = $('img'),
srcArray = [];
console.log(imgArray); // array of imgs
$.each(imgArray, function() {
srcArray.push(this.src));
});
答案 2 :(得分:0)
快速了解如何实现这一目标:
使用jQuery的DOM Ready函数打开 - >
$(function(){
创建包含元素集合的变量found
。
var found = $('p > img');
创建一个空数组来保存我们的结果。
var results = new Array();
遍历我们found
$.each(found, function(index,value){
对于我们找到的每个'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
错误关闭
});
希望这有助于澄清一些事情。
答案 3 :(得分:0)
您可以通过创建“即时”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)
};
}