将div文本添加到数组

时间:2019-07-17 10:33:34

标签: jquery html

我需要将此return ( <div> <Header opened={ ??? }/> {renderRoutes(route.routes)} <Footer /> <div/> ); 文本添加到数组中,如下所示:<div><a href="">Test</a>and another <a href="">Test</a></div>,但结果是['Test', 'and another', 'Test'],'and another'文本将被忽略。

['Test', 'Test']

3 个答案:

答案 0 :(得分:1)

您可以仅使用纯Javascript来完成此操作,而无需Jquery。

使用.childNodes.textContent

var text = [];

document.querySelector('div').childNodes.forEach((el) => {
  text.push(el.textContent)
})

console.log(text)
<div><a href="">Test</a>and another <a href="">Test</a></div>

答案 1 :(得分:1)

here

.children()仅返回html元素,而不返回文本,因此很明显,和另一个未包含在项目中。为了达到您想要的结果,您可以将其放在<span>标签中:)

答案 2 :(得分:1)

使用 .contents()代替 .children() children()函数不包含注释和文本节点。因此您的功能将是:

let text = [];
$('div').contents().each(function () {
  text.push($(this).text());
});

Ref Link

Fiddle