我扩展了 jQuery 对象以返回它的内部 HTML ...
$.fn.toString = function() {
return this.html();
};
console.log("The inner HTML is: " + $("<div>Here, <i>there</i>, everywhere</div>"));
有什么理由为什么这不是默认行为?这会破坏什么吗?
更新以回应答案/评论
首先,除了依赖将 jQuery 对象强制转换为字符串以及匹配该字符串中的文本的类型检查外,我看不出它会如何破坏。我错了吗?
这将返回outerHTML
集合中所有元素的连接。这对其他人有意义吗?对我来说,这很有意义。
var li, list;
$.fn.toString = function() {
var out;
out = [];
$.each(this, function(k, v) {
return out.push($(v)[0].outerHTML);
});
return out.join("\n");
};
list = $("<ul>\n <li>some <a href='/'>link</a> items</li>\n <li>some <a href='/'>link</a> items</li>\n <li>some <a href='/'>link</a> items</li>\n <li>some <a href='/'>link</a> items</li>\n <li>some <a href='/'>link</a> items</li>\n</ul>");
li = $("li", list);
console.log("The html of it..: " + li);