相关疑难解决方法(0)

使用内置DOM方法或Prototype从HTML字符串创建新的DOM元素

我有一个表示元素的HTML字符串:'<li>text</li>'.我想将它附加到DOM中的一个元素(ul在我的例子中).如何使用Prototype或DOM方法执行此操作?

(我知道我可以在jQuery中轻松完成这个,但不幸的是我们没有使用jQuery.)

javascript dom prototypejs

555
推荐指数
15
解决办法
53万
查看次数

Reactjs转换为html

我在处理facebook的ReactJS时遇到了麻烦.每当我执行ajax并想要显示html数据时,ReactJS会将其显示为文本.(见下图)

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?

javascript ajax jquery reactjs react-jsx

182
推荐指数
9
解决办法
16万
查看次数

React props:在JSX动态内容中使用HTML实体吗?

我有一个React组件,我想为其道具分配一个包含JavaScript变量和HTML实体的字符串。

我尝试过的一些方法导致HTML实体被转义。例如,&ndash;从字面上呈现为“ &ndash;”而不是“ ”。

有没有办法让HTML实体在分配给React道具的JSX动态内容块中呈现为未转义?

尝试了

尝试使用模板文字

<MyPanel title={`${name} &ndash; ${description}`}> ... </MyPanel>
Run Code Online (Sandbox Code Playgroud)

问题:在渲染的输出中,&ndash;字面被渲染为“ &ndash;”而不是“ ”。


尝试构建一些不带引号的简单JSX:

<MyPanel title={{name} &ndash; {description}} ... </MyPanel>
Run Code Online (Sandbox Code Playgroud)

问题:这在编译时失败,出现语法错误。


尝试通过将JSX包装在一个<span />元素中来解决语法错误:

<MyPanel title={<span>{name} &ndash; {description}</span>} ... </MyPanel>
Run Code Online (Sandbox Code Playgroud)

问题:这可行,但是我宁愿避免<span />渲染输出中存在多余的元素。


尝试将HTML实体替换为Unicode数字字符引用:

<MyPanel title={name + ' \u2013 ' + description} ... </MyPanel>
Run Code Online (Sandbox Code Playgroud)

问题:

  • 这行得通,但是(在我看来)使代码的可读性降低了。(更明显的是,“ ndash”而不是“ 2013”​​代表一个破折号。)
  • 此外,这涉及+-operator串联,这会Unexpected string concatenation prefer-template在我的团队的JSLint检查器中触发错误;使用字符串插值的解决方案会更好。

javascript reactjs

9
推荐指数
2
解决办法
6617
查看次数

在 JSX 表达式中动态添加换行符

所以我正在制作一个 React 应用程序,从 API 获取歌曲的歌词

\n\n

API 给了我一个歌词主体,它是一个字符串,我用它来在页面上显示歌词,问题是,当 React 渲染它时,看起来不是特别好,因为 api 给了我这个:

\n\n

They say "Oh my god I see the way you shine"\xe2\x86\xb5Take your hand, my dear(这是API返回给我的部分歌词数据)

\n\n

正是这个字符:\xe2\x86\xb5造成了问题,他们很高兴为我提供任何应该是换行符的东西。所以我决定用一个替换那个角色<br />

\n\n

这是我的一段代码:

\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>\n
Run Code Online (Sandbox Code Playgroud)\n\n

这显然不会换行,但它只会<br />直接渲染到段落中,这不好

\n\n

我对 JSX 以及你能做什么和不能做什么所以我有点迷失在这里,我尝试过/n%0D%0A我在研究过程中发现的任何其他东西但没有任何效果

\n\n

我还尝试通过添加这样的变量来连接:

\n\n
const 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>\n
Run Code Online (Sandbox Code Playgroud)\n\n

但这只是渲染成这样:

\n\n

They say "Oh my …

html javascript jsx reactjs

3
推荐指数
2
解决办法
4246
查看次数

反应:内容中的原始 HTML 标签

我正在开发一个 React 应用程序。有一些包含 HTML 标签的动态内容。当我在页面上显示该内容时,它显示的是原始 HTML 标记。

比如说:

const msg = "Some <strong>text</strong> here"
Run Code Online (Sandbox Code Playgroud)

我想说明这样的页面上的一些文字在这里

如果我使用,dangerousHtml那么它会像这样显示,没有粗体“这里有一些文字”

有人可以帮忙吗?

提前致谢!

ecmascript-6 reactjs redux react-dom

2
推荐指数
1
解决办法
8013
查看次数