Dom与Jquery的ajax

Dom与Jquery的ajaxDom与Jquery的ajax

大家好,又见面了,我是你们的朋友全栈君。

Dom与jquery互相转换

DOM是文档对象模型(Document Object Model,简称DOM)
jQuery是一个JavaScript 库,极大地简化了JavaScript编程。

  • dom与jq互转,jq对象只能用jq方法,dom对象只能用内置的dom方法,不能互窜
    $(“#test”) //jq对象
    $(“#test”)[0] //dom对象
    $(“#test”).get(0) //dom对象
    var dom = document.getElementById(“test”); //dom对象
    $(dom) //jq对象
    在这里插入图片描述案例:
//这是一个JavaScript对象
  var variable =                     
  //这就是个jQuery对象
  var $variable = $()            
  //这是一个DOM对象,方法包括getElementById( ),getElementByTagName( )...
  var variable = document.get...     
//dom与jquery互相转换
   //取得<input>标签中的value属性的内容[dom对象->jquery对象]
    var inputElement = document.getElementById("inputID");//DOM对象
    var $input = $(inputElement);//jQuery对象
    var value = $input.val();
    alert(value);
    //取得 <div>标签中的文本内容[jquery对象->dom对象,方法一]
    var $div = $("#divID");//jQuery对象
    var divElement = $div[0];//DOM对象
    var html = divElement.innerHTML;
    alert(html);
    //取得<div>标签中的文本内容[jquery对象->dom对象,方法二]
    var $div = $("#divID");//jQuery对象
    var divElement = $div.get(0);//DOM对象
    var html = divElement.html();
    alert(html);

Dom原生Ajax请求

function getHTTPObject(){
    if(typeof XMLHttpRequest == "undefined"){
        XMLHttpRequest = new ActiveXObject("MSXML2.XMLHTTP");  //兼容IE
    }
    return new XMLHttpRequest();
} 
//获取服务端数据
function getContent(){
    var request = getHTTPObject();
    if(request){
        //第一个参数是访问请求类型GET POST SEND, 
        //第二个参数是数据来源地址,一般指服务器接口
        //第三个参数代表是否异步方式发送和处理
        request.open("GET", "data.json", true);  
        request.onreadystatechange = function(){
            //readyState有5种值,0是未初始化 1是正在加载 2是加载完毕 3是正在交互 4是完成
            if(request.readyState == 4){
                console.log(request.responseText);
            }
        };
        request.send(null);
    }else{
        alert("Sorry, Error");
    }
}

jquery的Ajax请求

function findAllDepts() {
    $.ajax({
        async : false,    //表示请求是否异步处理
        type : "post",    //请求类型
        url : "/getDepts",//请求的 URL地址
        dataType : "json",//返回的数据类型
        success: function (data) {
          console.log(data);  //在控制台打印服务器端返回的数据
          for(var i=0;i<data.length;i++){
              console.log(data[i].deptId+" "+data[i].deptName);
          }
            $("select[name='depertmentId']").empty();
            $("select[name='depertmentId']").append('<option value="">——请选择——</option>');
            for(var i=0;i<data.length;i++){
                var html ='<option value="'+data[i].deptId+'">';
                html +=data[i].deptName + '</option>';
                $("select[name='departmentId']").append(html);  //将数据显示在html页面
            }
        },
        error:function (data) {
            alert(data.result);
        }
    });
};
 
$(document).ready(function () {
   findAllDepts();  //页面加载完成就执行该方法
});

服务端原生代码:

//Java代码:后台获取单个数控定位器的历史表格的数据
//请求路径看get(),post()里面的逻辑分配
    public void getHistorySingleData() throws IOException{ 
   
        HttpServletRequest request = ServletActionContext.getRequest();
        HttpServletResponse response = ServletActionContext.getResponse();
        response.setHeader("Content-type", "text/html;charset=UTF-8");
        response.setContentType("text/html;charset=utf-8");
        String deviceName = request.getParameter("deviceName");
        String startDate= request.getParameter("startDate");
        String endDate = request.getParameter("endDate");
        SingleHistoryData[] singleHistoryData = chartService.getHistorySingleData(deviceName,startDate, endDate);
        System.out.println(singleHistoryData.length);
        System.out.println(JSONArray.fromObject(singleHistoryData).toString());
        //打印:[{"time":"2016-11-11 10:00:00","state":"运行","ball":"锁紧",....},{"time":"2016-11-11 10:00:05","state":"运行","ball":"锁紧",....},{},{}....]查到几条singleHistoryData对象就打印几个对象的信息{"time":"2016-11-11 10:00:05","state":"运行","ball":"锁紧",....}
        //将json数据回传给回调函数
        response.getWriter().print(JSONArray.fromObject(singleHistoryData).toString());
    }

SSM代码:

msg类:

package com.xiaoyu.shop.bean;

import java.util.HashMap;
import java.util.Map;

/** * 通知返回类 * @author Administrator * */
public class Msg { 
   
	//状态码 100-成功 200-失败
	private int code;
	//提示信息
	private String msg;
	
	//用户要返回给浏览器的数据
	private Map<String, Object> extend = new HashMap<String, Object>();

	public static Msg success(){ 
   
		Msg result = new Msg();
		result.setCode(100);
		result.setMsg("处理成功!");
		return result;
	}
	
	public static Msg fail(){ 
   
		Msg result = new Msg();
		result.setCode(200);
		result.setMsg("处理失败!");
		return result;
	}
	
	public Msg add(String key,Object value){ 
   
		this.getExtend().put(key, value);
		return this;
	}
	
	public int getCode() { 
   
		return code;
	}

	public void setCode(int code) { 
   
		this.code = code;
	}

	public String getMsg() { 
   
		return msg;
	}

	public void setMsg(String msg) { 
   
		this.msg = msg;
	}

	public Map<String, Object> getExtend() { 
   
		return extend;
	}

	public void setExtend(Map<String, Object> extend) { 
   
		this.extend = extend;
	}
	
	
}

将json数据回传给回调函数的方法:


package com.xiaoyu.shop.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import com.xiaoyu.shop.bean.Msg;

@Controller
public class AdminController { 
   
    /** * 管理员登录 * /adminlogin : 请求路径 */
    @RequestMapping("/adminlogin")
    @ResponseBody
    public Msg userLogin(@RequestParam(value = "adminName") String adminName,
            @RequestParam(value = "adminPassword") String adminPassword) { 
   
        System.out.println(adminName + "+" + adminPassword);
        if (adminName.equals("admin") && adminPassword.equals("admin")) { 
   
            return Msg.success().add("msg", "管理员登录成功");
        } else { 
   
            return Msg.fail().add("msg", "管理员登录失败");
        }
    }

}

SpringBoot代码:

msg类参考ssm的msg类。
将json数据回传给回调函数的方法:

//管理员模糊分页查询用户
    @RequestMapping("/admin_LikeUserList")
    @ResponseBody
    public Msg admin_LikeUserList(@RequestParam(value = "pn", defaultValue = "") Integer pn,
                                  @RequestParam(value = "userName", defaultValue = "") String userName){ 
   
        System.out.println(pn + ";" + userName);
        PageHelper.startPage(pn, 5);
        List<User> UserList = userService.LikeUserList(userName);
        for(User s:UserList){ 
   
            System.out.println(s.toString());
        }
        PageInfo page = new PageInfo(UserList, 5);
        return Msg.success().add("pageInfo", page);
    }

java后台接收数据

前台请求

var params = { 
   “xxx”:“xx”}
$.ajax({ 
   
    type:”post”,
    ansyv:true,
    data:params,
    datatype:”json”,
    url:””,
    success:function(data){ 
   
    },
    error:function(){ 
   
    }
})

java后台接收数据

方法一:

public String getData(HttpServlettRequest request){ 
   
    String ss= request.getParameter(“xxx”); //ss=>xx
}

方法二:

public String getData(){ 
   
HttpServletRequest request=  ServletActionContext.getRequest();  
    String ss =  request.getParameter("xxx");  //ss=>xx
}

方法三:
需要Spring mvc
后端通过 @RequestParam(value=”xxx”) String xxx 分别获取对应的键值对

@RequestMapping(value="/example1", method=RequestMethod.GET)
public @ResponseBody String emrSubmit(
      @RequestParam(value="id") String id,
      @RequestParam(value="name") String name
){ 
   
  //...
}

方法四:
需要Spring mvc
后端通过 @RequestParam Map <String,Object> param 一次性获取全部的键值对

@RequestMapping(value="/example1", method=RequestMethod.GET)
public @ResponseBody String emrSubmit(
      @RequestParam Map<String,Object> param
){ 
   
  //提取前端传来的具体参数
  String id = (String)params.get("id");
  String name = (String)params.get("name ");
  //...
}

jQuery:html(),text(),val()方法的区别

1.HTML
html():取得第一个匹配元素的html内容。这个函数不能用于XML文档。但可以用于XHTML文档
html(val):设置每一个匹配元素的html内容。这个函数不能用于XML文档。但可以用于XHTML文档。
2.TEXT
text():取得所有匹配元素的内容。
结果是由所有匹配元素包含的文本内容组合起来的文本。这个方法对HTML和XML文档都有效。
text(val):设置所有匹配元素的文本内容
与 html() 类似, 但将编码 HTML (将 “<” 和 “>” 替换成相应的HTML实体).
3.VAL
val():获得第一个匹配元素的当前值。
val(val):设置每一个匹配元素的值。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/106652.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java定时器的几种实现方式

    java定时器的几种实现方式1前言在开始正题之前,先闲聊几句。有人说,计算机科学这个学科,软件方向研究到头就是数学,硬件方向研究到头就是物理,最轻松的是中间这批使用者,可以不太懂物理,不太懂数学,依旧可以使用计算机作为自己谋生的工具。这个规律具有普适应,看看“定时器”这个例子,往应用层研究,有Quartz,SpringSchedule等框架;往分布式研究,又有SchedulerX,ElasticJob等分布式任务调度;往底层实现看,又有多种定时器实现方案的原理、工作效率、数据结构可以深究…简单上手使用一个框架,并不能体

    2022年7月8日
  • C语言 list 链表

    C语言 list 链表目录一、list简介二、list包含方法2.1.push_front2.2.push_back2.3.begin2.3.end2.2.pop_front2.2.pop_back2.2.size2.2.empty2.2.clear三、源码list.clist.h一、list简介这里用双向链表实现,包含插入头、插入尾、删除头、删除尾等操作。二、list包含方法2.1.push_front功能插入数据到list头部参数list:list指针,data:插入数据指

    2022年7月12日
  • shuffle model_什么是did模型

    shuffle model_什么是did模型原文链接::https://arxiv.org/abs/1707.01083Abstract论文提出了一种计算效率极高的卷积神经网络结构——ShuffleNet,它是专门为计算能力有限的移动平台设计的。这个新结构用来两个新操作——逐渐群卷积(pointwisegroupconvulution)和通道混洗(channelshuffle)在保障精确率损失不大的同时大大减少了计算成本。基于Im…

    2022年9月9日
  • MATLAB实现线性插值interp1的功能

    MATLAB实现线性插值interp1的功能1.关于插值插值,它根据已知的数据序列(也可以理解为坐标中一连串离散的点),找到其中的规律;然后根据找到的这个规律,来对其中尚未有数据记录的点进数值的估计。2.关于线性插值线性插值是一种针对一维数据的插值方法,它根据一维数据序列中需要插值的点的左右邻近两个数据点来进行数值的估计。当然了它不是求这两个点数据大小的平均值(当然也有求平均值的情况),而是根据到这两个点的距离来分配它们的比重的。而对于一些边缘处的点也需要使用到外插:即通过找出最近的两个点,通过建立该两点之间的一元一次线性方程通过带入x即可以得

    2022年5月20日
  • autossh

    autosshautossh用来帮助ssh程序在中断后自动重连,在建立隧道的场合相当好用使用autossh可以进行内网穿透

    2022年10月22日
  • sublime text 3下载与安装详细教程「建议收藏」

    sublime text 3下载与安装详细教程「建议收藏」一、下载:打开官网下载链接http://www.sublimetext.com/3,下载SublimeText3portableversion”下载下来为“SublimeTextBuild3083x64.zip”编辑器的包,解压后无需安装就能运行,直接创建桌面快捷键就好二、双击桌面“SublimeText3”快捷图标,打开程序,就可…

    2022年7月11日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号