如何使用jQuery获取图像的html?
我希望这作为输出:
<img src="pokerface.png" alt="pokerface" />
Run Code Online (Sandbox Code Playgroud)
我正在尝试这个,但我得到一个空字符串(或null):
var imageHtml = $("#user-dialog .product-item img").html();
Run Code Online (Sandbox Code Playgroud)
以下返回Object,但我想要html
var imageHtml = $("#user-dialog .product-item img")
Run Code Online (Sandbox Code Playgroud)
我怎么做?
如果我尝试
var imageHtml = $("#user-dialog .product-item img").attr("src");
Run Code Online (Sandbox Code Playgroud)
我得到了正确的图像源(pokerface.png),所以我知道它是正确的元素.
pdo*_*926 15
jQuery("#user-dialog .product-item img").get(0).outerHTML;
Run Code Online (Sandbox Code Playgroud)
您正在寻找outerHTML(在那些支持它的浏览器中):
var imageHtml = $("#user-dialog .product-item img").map(function(){
return this.outerHTML;
}).get();
Run Code Online (Sandbox Code Playgroud)
当然,这将返回img元素HTML 的数组; 它允许jQuery整理所有相关信息,而不是get()使用括号 - 表示法索引显式迭代匹配的集合[n]
还有一个简单的(严重的,非常简单的)插件来检索outerHTML匹配的元素:
(function ($) {
$.fn.htmlOuter = function () {
var self = this,
len = self.length,
_tmp = document.createElement('div'),
_h = [];
for (var i = 0; i < len; i++) {
_tmp.appendChild(self[i].cloneNode());
_h.push(_tmp.innerHTML);
_tmp.innerHTML = '';
}
return _h;
};
})(jQuery);
var images = $('img').htmlOuter();
console.log(images);
Run Code Online (Sandbox Code Playgroud)
请注意,上面返回一个数组,而通常,jQuery getter仅返回匹配集的第一个元素的结果,如果这是您更喜欢的,那么您可以将插件的最后一行更改为:
return _h[0];
Run Code Online (Sandbox Code Playgroud)
哦,显然(.text()和其他getter方法一样)这个explitly无法链接,因为它返回一个数组,或一个字符串(如果你喜欢),而不是 jQuery对象.
参考文献:
如果图像是容器内的唯一元素,您可以这样做:
$("#user-dialog .product-item img").parent().html();
Run Code Online (Sandbox Code Playgroud)
否则,您可以创建一个虚拟元素并将 img 对象附加到它以获取 .html() 值。
$('<div>').append($("#user-dialog .product-item img").clone()).html();
Run Code Online (Sandbox Code Playgroud)
这里提出了解决方案
How do you conversion a jQuery object into a string?