使用Javascript我希望获取一个 DOM 元素并仅获取它的tag、class、id等(括号中的内容),但忽略其中的实际文本内容。有点像innerHTML
/的反义词textContent
。
所以我希望得到一个这样的div:
<p id="foo">Ipsum Lorem</p>
变成一个字符串:
<p id="foo"> </p>
使用Javascript我希望获取一个 DOM 元素并仅获取它的tag、class、id等(括号中的内容),但忽略其中的实际文本内容。有点像innerHTML
/的反义词textContent
。
所以我希望得到一个这样的div:
<p id="foo">Ipsum Lorem</p>
变成一个字符串:
<p id="foo"> </p>
使用.cloneNode
或者如果您不想使用它:
获取节点名并将元素属性缩减为字符串。
'use strict';
const elem = document.getElementById('foobar');
const nodeName = elem.nodeName.toLowerCase();
const attrs = [...el.attributes].map((a) => {
if (a.value === '')
return a.name;
else if (a.value.indexOf('"') > -1)
return `${a.name}='${a.value}'`;
else
return `${a.name}="${a.value}"`;
}).join(' ');
const str = `<${nodeName} ${attrs}></${nodeName}>`;
将innerHTML
内部替换outerHTML
为什么都没有,或者像我在这里所做的那样,省略号“...”:
var txt = elem.outerHTML.replace(elem.innerHTML, '...');
选择元素 ( getElementById("foo")
) 后,
<p id="foo">Ipsum Lorem</p>
string
这将返回一个var txt
<p id="foo">...</p>