【问题标题】:JavaScript Needs to Send Esc Character \n or Text Return <p> to HTML/BrowserJavaScript 需要发送 Esc 字符 \n 或文本返回 <p> 到 HTML/浏览器
【发布时间】:2016-05-13 15:28:12
【问题描述】:

1) 在解释器中执行 JavaScript 时 - 我可以使用 esc 序列将一些文本放在第二行 注意:myHeading.textContent 的值在这个屏幕截图中与后面两个不同

   > myHeading.textContent + " \n How are things?"
   < "Joshua Tree is swell, Laurel Ruth Shimer 
   How are things?" = $1

2) 但是当我通过从浏览器 (Safari) 调用 html 来使用相同的想法进行测试时,我认为 '\n' 只是被视为 虽然我已经在 html 中完成了这项工作 - 当我在下一行放置一些内容时,HTML 并没有做任何特别的事情。当然,这是有道理的。

   var myHeading = document.querySelector('h1');
   myHeading.textContent = 'Good to see you again, ' + storedName +  ' \n    
  Write me again soon.' ;

3) 如果我尝试添加一个 html 标签,

,该标签只是作为文本的一部分包含在内。 html 引擎不会将其读取为实际字符(我不知道该怎么称呼它)

   var myHeading = document.querySelector('h1');
   myHeading.textContent = 'Good to see you again, ' + storedName +  ' <p>  
   Write me again soon.' ;

...

我有一个(可能是两个?)关于将 html 放入数组的 Stackoverflow 响应,但我认为这不是一回事。

【问题讨论】:

    标签: javascript html safari client-server


    【解决方案1】:

    虽然您的 shell 确实了解 \n 代表什么,但现代浏览器不了解。要在网页上表示newline,您应该改用&lt;br&gt; 元素。

    现在,正如您已经体验过的那样,您不能使用 textContent 属性插入 HTML 元素。这是因为textContent 属性代表元素的文本而不是 html——您设置的任何字符串都将被视为文本。

    要设置元素的内部 html,请使用 innerHTML 财产。

    这样的东西应该可以满足您的需求:

    myHeading.innerHTML = 
        'Good to see you again, ' + storedName +  ' <br>  Write me again soon.' ;
    

    【讨论】:

    • Alex 的回答指出了为什么我正在努力阅读 Flannigan O'Reilly JavaScript (Rhino) 的书非常重要!我还不知道在索引中查找“innerHTML”。但是,停下来编写这样的示例也非常有用,它将我尝试的所有代码 sn-ps 放在一起,并使用客户端的 3 个元素。与使用基于教程的书籍相比,我更喜欢以这种方式学习 JavaScript,因为我自己的兴趣使我更有动力。
    猜你喜欢
    • 2011-09-13
    • 1970-01-01
    • 1970-01-01
    • 2013-05-12
    • 1970-01-01
    • 1970-01-01
    • 2019-12-11
    • 1970-01-01
    • 2010-10-24
    相关资源
    最近更新 更多