我有一个表示元素的HTML字符串:'<li>text</li>'.我想将它附加到DOM中的一个元素(ul在我的例子中).如何使用Prototype或DOM方法执行此操作?
(我知道我可以在jQuery中轻松完成这个,但不幸的是我们没有使用jQuery.)
我在处理facebook的ReactJS时遇到了麻烦.每当我执行ajax并想要显示html数据时,ReactJS会将其显示为文本.(见下图)

数据通过jquery Ajax的成功回调函数显示.
$.ajax({
url: url here,
dataType: "json",
success: function(data) {
this.setState({
action: data.action
})
}.bind(this)
});
Run Code Online (Sandbox Code Playgroud)

有没有简单的方法将其转换为HTML?我应该如何使用ReactJS?
我有一个React组件,我想为其道具分配一个包含JavaScript变量和HTML实体的字符串。
我尝试过的一些方法导致HTML实体被转义。例如,–从字面上呈现为“ –”而不是“ –”。
有没有办法让HTML实体在分配给React道具的JSX动态内容块中呈现为未转义?
尝试使用模板文字:
<MyPanel title={`${name} – ${description}`}> ... </MyPanel>
Run Code Online (Sandbox Code Playgroud)
问题:在渲染的输出中,–字面被渲染为“ –”而不是“ –”。
尝试构建一些不带引号的简单JSX:
<MyPanel title={{name} – {description}} ... </MyPanel>
Run Code Online (Sandbox Code Playgroud)
问题:这在编译时失败,出现语法错误。
尝试通过将JSX包装在一个<span />元素中来解决语法错误:
<MyPanel title={<span>{name} – {description}</span>} ... </MyPanel>
Run Code Online (Sandbox Code Playgroud)
问题:这可行,但是我宁愿避免<span />渲染输出中存在多余的元素。
尝试将HTML实体替换为Unicode数字字符引用:
<MyPanel title={name + ' \u2013 ' + description} ... </MyPanel>
Run Code Online (Sandbox Code Playgroud)
问题:
+-operator串联,这会Unexpected string concatenation prefer-template在我的团队的JSLint检查器中触发错误;使用字符串插值的解决方案会更好。所以我正在制作一个 React 应用程序,从 API 获取歌曲的歌词
\n\nAPI 给了我一个歌词主体,它是一个字符串,我用它来在页面上显示歌词,问题是,当 React 渲染它时,看起来不是特别好,因为 api 给了我这个:
\n\nThey say "Oh my god I see the way you shine"\xe2\x86\xb5Take your hand, my dear(这是API返回给我的部分歌词数据)
正是这个字符:\xe2\x86\xb5造成了问题,他们很高兴为我提供任何应该是换行符的东西。所以我决定用一个替换那个角色<br />
这是我的一段代码:
\n\n<div className="card-body">\n <p className="card-text">\n {lyrics.lyrics.lyrics_body.replace(/(\\r\\n|\\n|\\r)/gm, "<br />")}\n </p>\n</div>\nRun Code Online (Sandbox Code Playgroud)\n\n这显然不会换行,但它只会<br />直接渲染到段落中,这不好
我对 JSX 以及你能做什么和不能做什么所以我有点迷失在这里,我尝试过/n或%0D%0A我在研究过程中发现的任何其他东西但没有任何效果
我还尝试通过添加这样的变量来连接:
\n\nconst newLine = <br />;\n\n<div className="card-body">\n <p className="card-text">\n {lyrics.lyrics.lyrics_body.replace(/(\\r\\n|\\n|\\r)/gm, `${newLine})}\n </p>\n</div>\nRun Code Online (Sandbox Code Playgroud)\n\n但这只是渲染成这样:
\n\nThey say "Oh my …
我正在开发一个 React 应用程序。有一些包含 HTML 标签的动态内容。当我在页面上显示该内容时,它显示的是原始 HTML 标记。
比如说:
const msg = "Some <strong>text</strong> here"
Run Code Online (Sandbox Code Playgroud)
我想说明这样的页面上的一些文字在这里
如果我使用,dangerousHtml那么它会像这样显示,没有粗体“这里有一些文字”
有人可以帮忙吗?
提前致谢!
javascript ×4
reactjs ×4
ajax ×1
dom ×1
ecmascript-6 ×1
html ×1
jquery ×1
jsx ×1
prototypejs ×1
react-dom ×1
react-jsx ×1
redux ×1