将 .val() 转换为字符串 jQuery

Convert a .val() into string jQuery

本文关键字:字符串 jQuery 转换 val      更新时间:2023-09-26

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

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

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

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

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

呼叫.text()

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

如果没有 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());

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

我也有这个问题。 我使用以下作弊修复了它:

var val = $("#item").val() + "";