jQuery insertBefore或before方法不起作用

jQuery insertBefore或before方法不起作用,jquery,Jquery,我正在为我的学位做一个项目。该项目是一个小组项目,计划在南非开普敦的一所学校实施。您可以在GitHub上查看整个git组织,名为 该项目基本上是一个跟踪设备租赁的系统,例如教师为班级预订设备,或者学生想借出设备。如果老师选择了太多的设备出租,那么会显示一条错误消息告诉用户 我在项目的前端很忙,无法让这两个jQuery方法工作。它以前工作过,有一个月没有接触过这个项目,错误信息也不再出现。我检查了Firebug上的控制台,它显示了来自服务器的错误消息 假设我在登录屏幕上,登录屏幕如下所示: lo

我正在为我的学位做一个项目。该项目是一个小组项目,计划在南非开普敦的一所学校实施。您可以在GitHub上查看整个git组织,名为

该项目基本上是一个跟踪设备租赁的系统,例如教师为班级预订设备,或者学生想借出设备。如果老师选择了太多的设备出租,那么会显示一条错误消息告诉用户

我在项目的前端很忙,无法让这两个jQuery方法工作。它以前工作过,有一个月没有接触过这个项目,错误信息也不再出现。我检查了Firebug上的控制台,它显示了来自服务器的错误消息

假设我在登录屏幕上,登录屏幕如下所示:

login.js
脚本的代码是:

$(document).ready(function() {

  if (typeof sessionStorage.email != "undefined") {
    window.location = "/user";
  } else {
    // $('.content .loading').fadeIn(1000);
    // $('.content .loading').css('display', 'block');
    // $('.content .loading').delay(2000).fadeOut(1000);
    // $('.content p.greeting').delay(5000).fadeIn(1000);
    // $('.content p.greeting').delay(2000).fadeOut(1000);
    // $('.content .panel').delay(10000).fadeIn(1000);
    // $('.content .panel').fadeIn(1000);
  }

  $('.content .panel').fadeIn(1000);

  $('form.loginForm').submit(function(event) {
    var data = $(this).serializeArray();

    $.ajax({
      url: domain + 'testauth',
      type: 'POST',
      data: JSON.stringify({"username": data[0].value, "password" : data[1].value}),
      contentType: 'application/json',
      success: function(result, status, xhr) {
        var user_data = result.data;

        if (typeof(Storage) !== "undefined") {
          sessionStorage.user_id = user_data.id;
          sessionStorage.email = user_data.email;
          sessionStorage.fname = user_data.fname;
          sessionStorage.lname = user_data.lname;
          sessionStorage.user_type = user_data.type;
          sessionStorage.created_at = user_data.created_at;
          $.get(domain + "user/" + user_data.id, function(data) {
            data = data.data;
            if (data.loaned[0] !== undefined) {
              if (data.loaned.length > 1) {
                sessionStorage.device_loaned = data.loaned[0].type + ":" + data.loaned[0].id + "#" + data.loaned[1].type + ":" + data.loaned[1].id;
              } else if (data.loaned.length === 1) {
                sessionStorage.device_loaned = data.loaned[0].type + ":" + data.loaned[0].id;
              }
            } else {
              sessionStorage.device_loaned = null;
            }
            if (data.privileges.length > 1) {
              sessionStorage.perm = data.privileges[0].type + "#" + data.privileges[1].type;
            } else if (data.loaned.length === 1) {
              sessionStorage.perm = data.privileges[0].type;
            }
            window.location = "/user";
          });
        } else {
          $('.error-message').remove();
          var msg = $('<div class="alert alert-danger error-message"></div>').html("<strong>Oh snap!</strong> Your browser doesn't support local storage, please update your browser or download <a href='https://www.google.com/chrome/'>Google Chrome</a>/<a href='https://www.mozilla.org/en-US/firefox/new/'>Mozilla Firefox</a>.");
          $(msg).insertBefore('.panel');
          event.preventDefault();
        }
      },
      error: function(xhr, status, error) {
        try {
          var response = JSON.parse(xhr.responseText);
          $('.error-message').remove();
          var msg = $('<div class="alert alert-danger error-message"></div>').html("<strong>Oh snap!</strong> The email/ID or password entered is incorrect, please try again.");
          // $(msg).insertBefore('.panel');
          $('.panel').before(msg);
        } catch (e) {
          console.log(e);
        }
      },
    });
    event.preventDefault();
  });
});
$(文档).ready(函数(){
if(sessionStorage.email的类型!=“未定义”){
window.location=“/user”;
}否则{
//$('.content.load').fadeIn(1000);
//$('.content.load').css('display','block');
//$('.content.loading')。延迟(2000)。淡出(1000);
//$('content p.greeting').delay(5000)。fadeIn(1000);
//$('content p.greeting')。延迟(2000)。淡出(1000);
//$('.content.panel').delay(10000).fadeIn(1000);
//$('.content.panel').fadeIn(1000);
}
$('.content.panel').fadeIn(1000);
$('form.loginForm')。提交(函数(事件){
var data=$(this.serializeArray();
$.ajax({
url:domain+'testauth',
键入:“POST”,
数据:JSON.stringify({“用户名”:数据[0].value,“密码”:数据[1].value}),
contentType:'应用程序/json',
成功:功能(结果、状态、xhr){
var user_data=result.data;
if(类型(存储)!=“未定义”){
sessionStorage.user\u id=user\u data.id;
sessionStorage.email=用户\数据.email;
sessionStorage.fname=用户_data.fname;
sessionStorage.lname=用户_data.lname;
sessionStorage.user\u type=user\u data.type;
sessionStorage.created_at=用户_data.created_at;
$.get(域+“用户/”+user_data.id,函数(数据){
data=data.data;
if(数据借用[0]!==未定义){
如果(data.loaned.length>1){
sessionStorage.device_loaned=data.loaned[0]。类型+“:”+数据。loaned[0]。id+“#”+数据。loaned[1]。类型+“:”+数据。loaned[1]。id;
}else if(data.loaned.length==1){
sessionStorage.device_loaned=data.loaned[0]。类型+“:”+data.loaned[0]。id;
}
}否则{
sessionStorage.device\u loaned=null;
}
如果(data.privileges.length>1){
sessionStorage.perm=data.privileges[0]。键入+“#”+data.privileges[1]。键入;
}else if(data.loaned.length==1){
sessionStorage.perm=data.privileges[0]。键入;
}
window.location=“/user”;
});
}否则{
$('.error message').remove();
var msg=$('').html(“Oh snap!您的浏览器不支持本地存储,请更新浏览器或下载/”);
$(msg).insertBefore('.panel');
event.preventDefault();
}
},
错误:函数(xhr、状态、错误){
试一试{
var response=JSON.parse(xhr.responseText);
$('.error message').remove();
var msg=$('').html(“Oh snap!输入的电子邮件/ID或密码不正确,请重试。”);
//$(msg).insertBefore('.panel');
$('.panel')。在(msg)之前;
}捕获(e){
控制台日志(e);
}
},
});
event.preventDefault();
});
});
我相信不仅仅是错误信息不起作用。起初我认为问题可能出在我的笔记本电脑上,因为它确实出现了一些问题,起初我在另一台机器上测试了系统,但它做了同样的事情,所以我想可能是我的代码出了问题


我的网站是通过链接服务器托管的(可以在Jewel Systems组织中找到repo,您需要安装
gradle
来运行此服务器)。

您的msg似乎已经是jQuery对象了 也许你必须使用

msg.insertBefore(“.panel”)


看起来你的msg已经是jQuery对象了 也许你必须使用

msg.insertBefore(“.panel”)


错误在另一个文件中,当ajaxStop发生时,我在该文件中删除了错误消息。

错误在另一个文件中,当ajaxStop发生时,我在该文件中删除了错误消息。

您的代码正常工作,但问题可能在其他地方,请参阅,没有$的msg也在运行,设置sessionStorage的好方法是
sessionStorage.setItem('key','value')
@ainasiart为什么更好?是的,我在另一个文件中发现了错误。ajax停止后,我删除了错误消息。您的代码可以正常工作,但问题可能出在其他地方,请参阅,不带$的msg也可以正常工作,设置会话存储的好方法是
sessionStorage.setItem('key','value')
@ainasiart为什么更好?是的,我在另一个文件中发现了错误。我在ajax停止后删除了错误消息。