内部HTMLを返すようにjQueryオブジェクトを拡張しました...
$.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);