4

使用Javascript我希望获取一个 DOM 元素并仅获取它的tagclassid等(括号中的内容),但忽略其中的实际文本内容。有点像innerHTML/的反义词textContent

所以我希望得到一个这样的div:

<p id="foo">Ipsum Lorem</p>

变成一个字符串:

<p id="foo"> </p>

4

2 回答 2

3

使用.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}>`;

https://jsfiddle.net/k22tyqbr/3/

于 2016-09-29T13:09:55.460 回答
-1

innerHTML内部替换outerHTML为什么都没有,或者像我在这里所做的那样,省略号“...”:

var txt = elem.outerHTML.replace(elem.innerHTML, '...');

选择元素 ( getElementById("foo")) 后,

<p id="foo">Ipsum Lorem</p>

string这将返回一个var txt

<p id="foo">...</p>

于 2016-09-29T12:57:58.463 回答