我希望在 HTML 字符串中创建所有图像的数组。
我尝试使用以下内容,但如果 src 中不存在完整的 URL 路径,则会生成错误。
var found = $(html).find('img');
我希望在 HTML 字符串中创建所有图像的数组。
我尝试使用以下内容,但如果 src 中不存在完整的 URL 路径,则会生成错误。
var found = $(html).find('img');
您可以通过创建“即时” 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)
};
}
$("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));
});
快速了解如何实现这一目标:
使用 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.');
只提醒我们添加到数组中的第三项的 src。
alert('The src of the 3rd item is: '+results[2]); //3nd item in array, indexes are 0 based
错误关闭
});
希望这有助于澄清一些事情。