Javascript 如何在传入的动态文本中插入Html标记
我有一些来自动态生成的数据库的传入文本,它被放入一个div中,我将其称为:Javascript 如何在传入的动态文本中插入Html标记,javascript,html,css,dynamic-text,Javascript,Html,Css,Dynamic Text,我有一些来自动态生成的数据库的传入文本,它被放入一个div中,我将其称为: <div id="dynamicText"> ${dataBase.text} </div> 我数句子没有问题,我遇到的障碍是把p标签放进输入的文本中。我尝试使用insertAdjacentHTML()但是我得到一个uncaughttypeerror:无法读取null的属性“insertAdjacentHTML”错误 关于如何做到这一点,或者是否可以做到这一点,有什么想法吗?瞧 根据以下方面的答
<div id="dynamicText"> ${dataBase.text} </div>
我数句子没有问题,我遇到的障碍是把p标签放进输入的文本中。我尝试使用insertAdjacentHTML()
但是我得到一个uncaughttypeerror:无法读取null的属性“insertAdjacentHTML”
错误
关于如何做到这一点,或者是否可以做到这一点,有什么想法吗?瞧
根据以下方面的答复:
及
我已经创造了一个我认为是可行的解决方案。我将整个字符串(database.text)拆分成和数组中的phrazes,然后创建8个phrazes的块,最后将它们附加到包装器中
const wrapper = document.querySelector('.wrapper')
const text = `... your stringified content`
const array = text.replace(/([.?!])\s*(?=[A-Z])/g, "$1|").split("|")
function chunker(array, chunkSize) {
console.log(array)
return [].concat.apply([],
array.map(function(el, i) {
return i % chunkSize ? [] : [array.slice(i, i + chunkSize)];
})
);
}
const paragraphs = chunker(array, 8)
paragraphs.forEach((el) => {
const p = document.createElement('p')
p.innerText = el
wrapper.append(p)
})
下面是我为您准备的一个JSFIDLE:我很困惑。目前你匹配句子,但不做任何事情。在您发布的代码中,
count
在您完成匹配后不会用于任何用途。您讨论的insertAdjacentHTML()
也没有提及。我没有使用count
做任何事情的原因是,在我能够匹配句子之后,我遇到了一些问题,无法确定如何在文本中插入p标记,并根据匹配的count
将其分解为段落。是哪个mkbctrl能找出那部分的。我没有包括insertAdjacentHTML()
,因为我提出的那部分代码不起作用。
const wrapper = document.querySelector('.wrapper')
const text = `... your stringified content`
const array = text.replace(/([.?!])\s*(?=[A-Z])/g, "$1|").split("|")
function chunker(array, chunkSize) {
console.log(array)
return [].concat.apply([],
array.map(function(el, i) {
return i % chunkSize ? [] : [array.slice(i, i + chunkSize)];
})
);
}
const paragraphs = chunker(array, 8)
paragraphs.forEach((el) => {
const p = document.createElement('p')
p.innerText = el
wrapper.append(p)
})