Yan*_*ner 2 html javascript jquery twitter-bootstrap
我在 JS getElementByID 方面遇到以下问题:\n我有一个带有 Bootstrap Modal 的 .php 文件 (kalender.php)。因此,单击按钮 (#showModalDownload) 后,模式会显示出来,并应显示一些内容。\n但首先会触发 JS 脚本,该脚本应使用一些内容填充模式。\n这是我的代码:\nKalender.php
\n\n <div class="modal fade" id="icsImport">\n <div class="modal-dialog">\n <div class="modal-content">\n <div class="modal-header">\n <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>\n <h4 class="modal-title">Absencen Herunterladen</h4>\n </div>\n <div class="modal-body">\n <p>Bitte w\xc3\xa4hlen Sie die zu exportierenden Absenzen aus</p>\n <div id="downloadContent">\n\n <div>\n </div>\n <div class="modal-footer">\n <button type="button" class="btn btn-default" data-dismiss="modal">Abbrechen</button>\n <button type="button" class="btn btn-info">Herunterladen</button>\n </form>\n </div>\n </div><!-- /.modal-content -->\n </div><!-- /.modal-dialog -->\n </div><!-- /.modal -->\n<script src="javascripts/main.js"></script>\n</body>\nRun Code Online (Sandbox Code Playgroud)\n\nmain.js
\n\n$(\'#showModalDownload\').click(function(){\n$("#icsImport").modal(\'show\');\n$.ajax({\n type: "POST",\n url: "login.php",\n data: {"export": "true"},\n dataType: "json",\n success: function(data){\n var response=(data);\n var container = document.createElement(\'div\');\n var checkboxContainer = document.createElement(\'div\');\n checkboxContainer.setAttribute(\'class\', \'checkbox\');\n var label;\n var checkBox;\n\n for(i=0;i<response.length;i++){\n label = document.createElement(\'label\');\n checkBox = document.createElement(\'input\');\n checkBox.type = "checkbox";\n label.appendChild(checkBox);\n label.innerHTML = "test";\n // label.innerHTML = response[\'date\'][i] + " " + response[\'typ\'][i];\n\n checkboxContainer.appendChild(label);\n container.appendChild(checkboxContainer);\n }\n\n $(document).ready(function(){\n downloadContent = document.getElementById(\'#downloadContent\');\n downloadContent.appendChild(container);\n });\n }\n});\nRun Code Online (Sandbox Code Playgroud)\n\n});
\n\n单击我的按钮后,模式会显示出来,但正如我在 Chrome 控制台中看到的那样,出现以下错误: Uncaught TypeError: Cannot call method \'appendChild\' of null
\n\n首先我认为这是因为 js 在我的模态创建之前运行。但是 javaScript include 位于我的模态之后,就在标签之前,并且我已将 getElementById 放在
\n\n\n\n\n$(文档).ready(函数()
\n
区域。
\n\n有人可以帮帮我吗?
\n\n谢谢分配
\n\n亚尼克
\n您传入的值getElementById只是id,而不是选择器。你不把 放在#它前面。
// No # here ------------------------------v
downloadContent = document.getElementById('downloadContent');
downloadContent.appendChild(container);
Run Code Online (Sandbox Code Playgroud)
但是当您使用 jQuery 时,为什么不...使用 jQuery?
$("#downloadContent").append(container);
Run Code Online (Sandbox Code Playgroud)
(成功处理程序的其他方面也可以更好地利用 jQuery,但这可能是最想要的,尤其是因为 jQuery 可以解决getElementById旧版 IE 中的错误。)
| 归档时间: |
|
| 查看次数: |
9206 次 |
| 最近记录: |