javascript - innerHTML(或其他方法): append li to ul,,其中 <input/> 包括属性

标签 javascript html input innerhtml appendchild

document.getElementById('addplace').addEventListener('click', function() {
    addplace();
  });

function addplace() {
  var node = document.createElement("li"); // Create a <li> node
  node.innerHTML = "<input/>"               
  document.getElementById("waypoints").appendChild(node);
}
<ul id="waypoints"></ul>
<input type="submit" id="addplace" />        
        

当单击按钮时,上面的代码片段成功地将输入字段添加到 ul。但是,当我向输入字段添加属性时,提交按钮不再起作用。

    document.getElementById('addplace').addEventListener('click', function() {
        addplace();
      });

    function addplace() {
      var node = document.createElement("li"); // Create a <li> node
      node.innerHTML = "<input class="field" placeholder="Where to begin?" onFocus="geolocate()" type="text" />"               
      document.getElementById("waypoints").appendChild(node);
    }
    <ul id="waypoints"></ul>
    <input type="submit" id="addplace" />        

谢谢。

最佳答案

您必须转义("\"")字符串内的双引号,或者使用单引号("'")代替双引号解决您的问题。

function addplace() {
  var node = document.createElement("li"); // Create a <li> node
  node.innerHTML = "<input class='field' placeholder='Where to begin?' onFocus='geolocate()' type='text' />"               
  document.getElementById("waypoints").appendChild(node);
}

通过转义双引号的解决方案,

node.innerHTML = "<input class=\"field\" placeholder=\"Where to begin?\" onFocus=\"geolocate()\" type=\"text\" />"               

关于javascript - innerHTML(或其他方法): append li to ul,,其中 &lt;input/> 包括属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36532484/

相关文章:

javascript - 调整或缩小 Cycle 2 幻灯片图像时出现问题

javascript - 如何将数据从一个页面传递到另一个html

html - 当边距和填充为 0 时居中 DIV?

c++ - 临时转换输入防弹?

reactjs - 如何在 Material ui core 3.9.2 中使用 InputRef

html - 如何摆脱输入日期的 x 和向上/向下箭头元素?

javascript - 在 chrome 扩展中使用 Chrome 文字转语音

javascript - 如何使用$.ajax读取本地xml文件?

javascript - 在 ng-repeat 中绑定(bind) ngmodel 的正确方法

javascript - 我的媒体查询不起作用的原因是什么