您正在有效地寻找outerHTML
(在那些支持它的浏览器中):
var imageHtml = $("#user-dialog .product-item img").map(function(){
return this.outerHTML;
}).get();
JS 小提琴演示。
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);
JS 小提琴演示。
请注意,上面返回一个数组,而通常,jQuery getter 仅从匹配集的第一个元素返回结果,如果这是您更喜欢的,那么您可以将插件的最后一行更改为:
return _h[0];
JS 小提琴演示。
哦,显然(像.text()
和其他 getter 方法一样)这显然不能被链接,因为它返回一个数组或一个字符串(如果你愿意的话),而不是jQuery 对象。
参考: