Javascript 如何在reactjs中以编程方式修改dom元素?
我正在构建一个reactjs应用程序。我以字符串的形式获取html内容。 例如:Javascript 如何在reactjs中以编程方式修改dom元素?,javascript,reactjs,dom,anchor,Javascript,Reactjs,Dom,Anchor,我正在构建一个reactjs应用程序。我以字符串的形式获取html内容。 例如: state= {elem:`<div> <p>...</p> <a href="www.twitter.com"></a> <h1>Heading</h1> <div> <a href="www.facebo
state= {elem:`<div>
<p>...</p>
<a href="www.twitter.com"></a>
<h1>Heading</h1>
<div>
<a href="www.facebook.com"></a>
</div>
</div>`.}
我不需要直接在dom中呈现这个html片段,而是需要解析它并进行修改。也就是说,只要有锚定标记,我就需要附加http://如果href属性中没有它。代码段中可以有多个定位标记。如何实现这一点?为了实现这一点,您可以使用广泛支持的
这里有一个小片段
constparser=newdomparser();
常量htmlText=`
标题
`;
让content=parser.parseFromString(htmlText,“text/html”);
const archors=content.getElementsByTagName('a');
Array.from(锚点).forEach(v=>{
const href=v.getAttribute(“href”);
如果(!href.includes('http://')){
v、 href='http://'+href;
}
})
console.log(content.body.innerHTML);//这是你的新绳子
常量应用=()=>(
);
ReactDOM.render(,document.getElementById('root'))代码>
这与React无关。您可以使用JS regex轻松地完成这项工作。(但为什么危险的html
无论如何?@CKA和React-anchor标记对您没有帮助。Irs最好为上述要求定义组件使用String.prototype.replace()。否则我将如何呈现从API收到的html内容@DaneIf如果是HTML内容,很好:)然后使用replace()
。类似于htmlstring.replace(/非常感谢!这正是我一直在寻找的解决方案。你是一个救生员!
_createMarkup = () => {
return { __html: this.state.elem};
};