Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么HTMLDOM输入函数不工作?_Javascript_Html_Dom - Fatal编程技术网

Javascript 为什么HTMLDOM输入函数不工作?

Javascript 为什么HTMLDOM输入函数不工作?,javascript,html,dom,Javascript,Html,Dom,我试图创建一个文本字段,在按下“go”按钮后立即显示输入。但当我按下按钮时,它会清除所有元素 HTML <div id = "sideMenu"> <ul> <li id="r"> <span><img class="piece" src="vazirRed.png"></span> Red Player<input type="text" id="input" value="nam

我试图创建一个文本字段,在按下“go”按钮后立即显示输入。但当我按下按钮时,它会清除所有元素

HTML

<div id = "sideMenu">
  <ul>
    <li id="r">
      <span><img class="piece" src="vazirRed.png"></span>
      Red Player<input type="text" id="input" value="name">
      <button onclick="write();">go</button>
    </li>
    <li>
      <span><img class="piece" src="vazirBlue.png"></span>
      Blue Player<input type="text" value="name">
      <button onclick="write();">go</button>
    </li>
  </ul>
</div>

不能将函数命名为
write()

如果要调用
onclick=write()
则调用函数
document.write()
。所以你的DOM被清除了。你什么也得不到

重命名你的函数

将此行放入函数中,在
正文中添加
div

document.body.appendChild(name);

您只是在函数中使用
write
关键字。然后调用
document.write()
,它将用一个空字符串替换所有内容

替换为其他任何内容:

function writeIt() {
    ...
}

旁注:

  • 使用
    document.getElementById(“r”)
    代替
    document.getElementById(“r”)
  • 在你的小提琴中选择“No wrap in”可以让内联调用正常工作

    • 不能使用write方法,因为write()方法将HTML表达式或JavaScript代码写入文档。 文件:

      因此,请更改您的方法,使其变为:

      <div id = "sideMenu">
        <ul>
          <li id="r">
            <span><img class="piece" src="vazirRed.png"></span>
            Red Player<input type="text" id="input" value="name">
            <button onclick="submitInput();">go</button>
          </li>
          <li>
            <span><img class="piece" src="vazirBlue.png"></span>
            Blue Player<input type="text" value="name">
            <button onclick="submitInput();">go</button>
          </li>
        </ul>
      </div>
      <script>
      function submitInput(){
        var inputRed =  document.getElementById("input");
        var redName = inputRed.value;
        var name = document.createElement("div");
        //name.appendChild(redName);
        document.getElementById("r").innerHTML += redName;
      }
      </script>
      
      
      
      • 红牌选手 去
      • 蓝牌选手 去
      函数submitInput(){ var inputRed=document.getElementById(“输入”); var redName=inputed.value; var name=document.createElement(“div”); //name.appendChild(红色名称); document.getElementById(“r”).innerHTML+=redName; }
      注意:JSFIDLE中的
      onLoad
      选项会影响您输入的JavaScript的范围。由于ID应该是唯一的,所以不应该将具有相同ID的输入追加回DOM。
      <div id = "sideMenu">
        <ul>
          <li id="r">
            <span><img class="piece" src="vazirRed.png"></span>
            Red Player<input type="text" id="input" value="name">
            <button onclick="submitInput();">go</button>
          </li>
          <li>
            <span><img class="piece" src="vazirBlue.png"></span>
            Blue Player<input type="text" value="name">
            <button onclick="submitInput();">go</button>
          </li>
        </ul>
      </div>
      <script>
      function submitInput(){
        var inputRed =  document.getElementById("input");
        var redName = inputRed.value;
        var name = document.createElement("div");
        //name.appendChild(redName);
        document.getElementById("r").innerHTML += redName;
      }
      </script>