3

我有一个 jQuery 函数,它从名为的表单输入文本对象中获取值,content用户可以在其中输入表单中的 HTML 标记。例如,用户键入带有<b>标签的“Sample”。一旦提交被触发,jQuery 就会从content.

var content = $('[name=content]').val();

我的问题是,如果用户有一个标签,可以说一个<b>标签,我想将原始 html 字符串输出给用户,而不是让它呈现。

我该怎么做?任何帮助将不胜感激,我是 jQuery 新手。

4

4 回答 4

9

.val()已经返回一个字符串。
您正在询问如何在不将其解析为 HTML 的情况下显示该字符串。

打电话.text()

于 2012-06-15T02:13:41.577 回答
1

好的,听起来您想在没有浏览器渲染的情况下显示代码。也许您想将标签转换为 html 实体

于 2012-06-15T02:23:22.727 回答
0

如果没有 jQuery,你会这样做:

document.getElementsByName('content')[0].value;

以获得用户输入的确切信息。

编辑

现在我明白了,您正在将值编写为另一个元素的 innerHTML,并且您希望显示文字文本,而不是标记。因此,继续使用 sans-jQuery 示例:

<script>
// Set the text content of an element
var setText = (function() {
    var d = document.createElement('div');
    if (typeof d.textContent == 'string') {
      d = null;
      return function(el, text) {
        el.textContent = text;
      };
    } else if (typeof d.innerText == 'string') {
      d = null;
      return function(el, text) {
        el.innerText = text;
      };
    }
}());
</script>

<input name="content">
<button onclick="
  setText(document.getElementById('d0'), 
          document.getElementsByName('content')[0].value);
">get value</button>
<div id="d0"></div>

或者正如 SLaks 建议的那样(相当神秘):

$('#d0').text($('[name=content]').val());

虽然我不知道为什么他或她的答案中没有。

于 2012-06-15T02:32:43.737 回答
0

我也遇到了这个问题。我使用以下作弊方法修复了它:

var val = $("#item").val() + "";
于 2018-11-07T18:38:47.580 回答