js 怎样返回当前节点的HTML呢 不是innerHTML.<div id="a"><div id="b"></div></div> 返回全部,不是
2个回答
展开全部
你要返回全部字符串就:outerHTML
追问
这个貌似不支持火狐啊。
追答
网上抄个解决方案:
String.prototype.trim = function(){
var str = this,ws = /\s/;
str = str.replace(/^\s+/, '');
var i = str.length;
while (ws.test(str.charAt(--i)));
return str.slice(0, i + 1);
}
String.prototype.quote = function () {
var c, i, l = this.length, o = '"';
for (i = 0; i = ' ') {
if (c === '\\' || c === '"') {
o += '\\';
}
o += c;
} else {
switch (c) {
case '\b':
o += '\\b';
break;
case '\f':
o += '\\f';
break;
case '\n':
o += '\\n';
break;
case '\r':
o += '\\r';
break;
case '\t':
o += '\\t';
break;
default:
c = c.charCodeAt();
o += '\\u00' + Math.floor(c / 16).toString(16) +
(c % 16).toString(16);
}
}
}
return o + '"';
}
if(document.documentElement.__defineGetter__){
HTMLElement.prototype.__defineGetter__("currentStyle", function () {
return this.ownerDocument.defaultView.getComputedStyle(this, null);
});
}
var rselfClosing = /^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i;
var outerHTML = function(el,recursion){
switch(el.nodeType+""){
case "1":
var array = [];
var nodeName = el.nodeName;
if(recursion && el.currentStyle.display == "block"){
array.push("\n")
}
array.push("")
}else{
array.push(">");
for(var i=0,c;c=el.childNodes[i++];){
array.push(outerHTML(c,true))
}
array.push("")
}
return array.join("");
case "3":
return el.nodeValue.trim();
case "8":
return "innerHTML" in el? el.innerHTML : ""
}
}
var innerHTML = function(el){
var array = [];
for(var i=0,c;c=el.childNodes[i++];){
array.push(outerHTML(c,true))
}
return array.join("");
}
其实简单点可以用jquery
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询