我的JavaScript/AJAX函数仅在调试时起作用
我不太熟悉JavaScript和AJAX 我正在开发一个网页,显示通过§.getJSON/JQuery请求返回的信息。但是这个函数只有在我开始调试时才起作用。我知道调试器更正了关于此主题的其他帖子中的时间和范围。但是我找不到我的错误。我真的不需要很长的解释,因为正如我之前所说的,我对JavaScript/AJAX不是很熟悉。这是页面中的脚本部分(您可以忽略addDropDown()和departmentSelected()函数(据我所知)):我的JavaScript/AJAX函数仅在调试时起作用,javascript,jquery,ajax,debugging,Javascript,Jquery,Ajax,Debugging,我不太熟悉JavaScript和AJAX 我正在开发一个网页,显示通过§.getJSON/JQuery请求返回的信息。但是这个函数只有在我开始调试时才起作用。我知道调试器更正了关于此主题的其他帖子中的时间和范围。但是我找不到我的错误。我真的不需要很长的解释,因为正如我之前所说的,我对JavaScript/AJAX不是很熟悉。这是页面中的脚本部分(您可以忽略addDropDown()和departmentSelected()函数(据我所知)): var isSelected=[]; $(添加下拉
var isSelected=[];
$(添加下拉菜单);
函数addDropDown(){
$.getJSON(“./api/persence/departments/all”),函数(数据、状态){
如果(状态!=“成功”){
警报(状态);
}否则{
var dropdownHead=“Abteilungen”;
var dropdownBody=“
我的问题是:在这个脚本部分中,我找不到我做错了什么,因为调试器(firebug)能够在调试时优化代码,所以它工作得非常好。但如果我没有处于调试模式,则只显示表的“标题行”(信息丢失)
感谢您的帮助。此问题与在DOM中查找元素有关。有时候Js比DOM快,Js在HTMLDOM中找不到特定的元素。您需要在onLoad中定义js代码
$(function() {
$(addDropDown);
});
或
重要信息:如果包含jQuery,不要使用JS特定函数。有时它会在jquery中崩溃。只需使用jQuery函数
例如:
不好:document.getElementById(“可输出”)
好:
'$(“#outputTable”)
好的,我自己解决了这个问题:我必须将以下部分放入jQuery请求调用的函数中(函数(结果、状态)…)
tBody=tBody+“”;
tHead=tHead+t车身;
document.getElementById(“可输出”).innerHTML=tHead
当您不调试时,控制台是否有任何错误?控制台仅显示请求(例如GET:)已成功(代码200)。如果我在另一个选项卡中打开请求,就会得到正确的JSON。所以我认为函数的else部分不起作用,但我不知道为什么。谢谢你的帮助。我照你说的做了:
$(“#outputTable”).html(tHead)在调用之前,我添加了console.log(tHead)代码>但变量未打印到控制台中。所以我不知道为什么?
$(function() {
$(addDropDown);
});
$(document).ready(function(){
$(addDropDown);
});