Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在reactjs中以编程方式修改dom元素?_Javascript_Reactjs_Dom_Anchor - Fatal编程技术网

Javascript 如何在reactjs中以编程方式修改dom元素?

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

我正在构建一个reactjs应用程序。我以字符串的形式获取html内容。 例如:

  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};
    };