如何获得一致的javascript提示字符串和innerHTML

时间:2010-09-26 00:24:29

标签: javascript jquery html escaping

我有一个段落,我想使用javascript prompt函数进行编辑。 当我没有输入<>时,一切正常。它们在html中看起来不错,但是当我想再次编辑它们时,我看到丑陋的&gt;&lt;

通过以下方案可以轻松复制这些问题:

  1. 按编辑按钮,
  2. 输入字符串<<<>>>
  3. 再次按“编辑”按钮。
  4. 您将在对话框中看到丑陋的提示符号。

    在提示对话框中出现丑陋的未转义符号。

    实际上在将innerHTML传递给提示函数之前我应该​​解除转义字符,怎么可以这样做呢?

    我的部分代码如下:

    <script type="text/javascript">
      function edit()
      {
        str = document.getElementById('par').innerHTML;
        str = prompt(str, str);
        document.getElementById('par').innerHTML = str;
      }
    </script>
    
    
    <p id="par">aaa</p>
    
    <input type="button" onclick="edit()" value="Edit" />
    

    我更喜欢API函数而不是手动替换gt;&lt; jquery解决方案也在为我提供。

    谢谢!

1 个答案:

答案 0 :(得分:4)

如果你真的只想要文本内容,那么你应该使用文本值而不是innerHTML属性。

在jQuery中你可以这样做:

var paragraph = $("#par");
var stringValue = paragraph.text();
stringValue = prompt( "Please ammend your text", stringValue );
paragraph.text( stringValue );