3

我是 JavaScript 新手。我正在尝试将文本添加到p标签中并使用 ID 定位它。现在,使用document.getElementById('text').innerHTML,当我设置包含该单词的文本时,它会返回标记do中的原始文本。p

document.getElementById('text').innerHTML='as I add??? do';
<p id="text" class="abc">Hello</p>

它只发生do在两者之间。 这是一个解释这个问题的 GIF:

在此处输入图像描述

我希望我做对了。但是,可能有一些怪癖困扰着我。

4

2 回答 2

3

正如github 上的 Juhana 和jsbin 成员false positive所评论的那样,它是一个,这可以通过添加// noprotect代码来实现。

例如

console.clear(); 
document.getElementById('abc').innerHTML = 'this is abc do '; 

// noprotect

ps到目前为止,它正在解决环路保护,直到它得到修复。

于 2016-08-18T19:00:32.663 回答
1

当你使用

document.getElementById("text").innerHTML = "abc a d";

他们加载此文档(由我格式化):

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width">
    <title>JS Bin</title>
    <style id="jsbin-css"></style>
  </head>
  <body>
    <p id="text">Hello</p>
    <script>
    try {
      document.getElementById("text").innerHTML = "abc a d";
    } catch (error) {
      throw error;
    }
    //# sourceURL=wecinoqeje.js
    </script>
  </body>
</html>

但是当您使用 时do,它们会完全搞砸您的代码。

document.getElementById("text").innerHTML = "abc a do";

他们可能认为这是一个do-while,因为他们有一种叫做“循环保护”的东西。加载的文档是

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width">
    <title>JS Bin</title>
    <style id="jsbin-css"></style>
  </head>
  <body>
    <p id="text">Hello</p>
    <script>
    try {
      {
        ;
        window.runnerWindow.protect.protect({
          line: 1,
          reset: true
        });
        document.getElementById("text")
        {
          if (window.runnerWindow.protect.protect({ line: 1 }))
            break;
          .innerHTML = "abc a do";
        }
      }
    } catch (error) {
      throw error;
    }
    //# sourceURL=wecinoqeje.js
    </script>
  </body>
</html>

那是语法错误。所以你的代码不会运行。

于 2016-08-18T19:15:07.017 回答