【问题标题】:jQuery: Convert TextArea content to html string and vice versajQuery:将 TextArea 内容转换为 html 字符串,反之亦然
【发布时间】:2010-09-27 13:11:46
【问题描述】:

我正在尝试将 TextArea 内容转换为有效的 html 代码。假设您在 TextArea 内键入,然后按下一个按钮,该按钮显示元素内键入的文本。如果您在 TextArea 内输入类似内容:

大家好!
你喜欢 jQuery 吗?
我愿意!

您必须放在 '' 元素内的结果字符串是:

Hi folks!<br>Do you like jQuery?<br>I do!

那是因为TextArea里面的换行符必须转换成&lt;br&gt;标签!

如果你想把元素的 html 放到 TextArea 输入字段中,同样的事情应该发生,例如:

Hi folks!<br>Do you like jQuery?<br>I do!

应转换为:

大家好!
你喜欢 jQuery 吗?
我愿意!

那么,有没有办法将字符串转换为 html-string(反之亦然)或者我应该自己编写一个函数?

提前致谢!

【问题讨论】:

  • 你可以用反引号标记内联代码`

标签: jquery html string


【解决方案1】:

使用适当的元素样式,您不需要转换任何内容。使用 CSS white-space 属性并将值设置为 pre,元素中的任何空白都应该与它在 textarea 中的显示完全相同:

#myElement { white-space: pre; }

示例:http://jsfiddle.net/TkpSu/

【讨论】:

  • 谢谢。虽然这是一个简单的解决方案。但我不得不为这个解决方案浪费很多时间。
  • 次要细节:在大多数情况下,如果用户提交没有换行符的长文本,#myElement { white-space: pre-wrap; } 可能更适合避免内容溢出。
【解决方案2】:

嗯,这并不难:

$('#element').html($('textarea').html().replace(/\n/g, "<br />"));

【讨论】:

  • 好吧,我想知道是否已经编写了一个jQuery转换函数,用“hand”替换标签很明显:)
  • 这回答了其中的一部分,但是我认为将文本从 #element 移动到 textarea 只需要换行是 OP 正在寻找的。​​span>
  • 我不得不使用 val() 而不是 html(),像这样:$('#_b').html($('#_a').val().replace(/\ n/g, "
    "));
  • It's not very difficult - 你假设 OP 已经掌握了 100% 的 Javascript 和 jQuery
【解决方案3】:

考虑使用降价编辑器。堆栈溢出使用了这个的修改版本:http://wmd-editor.com/

【讨论】:

  • 仅供参考链接已损坏
猜你喜欢
  • 2011-05-27
  • 2013-07-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多