博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jQuery初步
阅读量:6825 次
发布时间:2019-06-26

本文共 13357 字,大约阅读时间需要 44 分钟。

1.jQuery开发步骤

   jQuery是第三方开源组织基于js写的一款跨主流浏览器的实用库。

  (1)引用第三方js库文件,<script type="text/javascript" src="js/jquery-1.8.2.js"></script>

  (2)查阅并使用api手册,$("#divID").html()/val()/text()/css("color","red")/....

2.js对象转成jQuery对象

  语法:$(js对象)---->jQuery对象

  例如:$(divElement)---->$div

3.jQuery对象的三种基本定位方式

  (A)通过ID属性:$("#id属性值")

  (B)通过标签名:$("标签名")

  (C)通过CLASS属性:$(".样式名")

4.jQuery9类选择器

基本选择器

//查找id的元素个数alert($("#div1ID").size());//查找div元素个数alert($("div").length);//查找class元素个数alert($(".myClass").size());//查找div,span,p的个数alert($("div,span,p").size());//查找所有id,class,p的元素个数alert($("#div1ID,.myClass,p").size());

层次选择器

//找到form里面的inputalert($("form input").size());//找到form里所有子级input元素alert($("form>input").size());//找到form同级的第一个input的值alert($("form+input").val());//找到form同级的input元素个数,从form往后找alert($("form~input").length);

基本加强型选择器

//得到第一个lialert($("ul li:first").text());//得到最后一个lialert($("ul li:last").text());//得到第3个li,从0开始计数alert($("ul li:eq(2)").text());//得到偶数的tralert($("table tr:even").text());//得到奇数的tralert($("table tr:odd").text());//查找表格中索引号大于0的tralert($("table tr:gt(0)").size());//查找表格中索引号小于4的tralert($("table tr:lt(4)").size());//给h1\h2\h3标签加上红色背景,蓝色文字,header只用于h1、h2、h3$(":header").css("background-color","red").css("color","blue");//查找未选中的input为checkbox的元素个数alert($(":checkbox:not(:checked)").size());

内容选择器

//查找所有包含文本"John"的div元素的个数alert($("div:contains('John')").size());//查找所有p元素为空的元素个数,不包含

元素alert($("p:empty").size());//给所有包含p元素的div元素添加一个myClass样式$("div:has(p)").addClass("myClass");//查找所有含有子元素或者文本的p元素个数,即p为父元素,包含

元素alert($("p:parent").size());

可见性选择器

//1)查找隐藏的tr元素的个数alert($("table tr:hidden").size());//2)查找所有可见的tr元素的个数alert($("table tr:visible").size());

属性选择器

//查找所有含有id属性的div元素个数alert($("div[id]").size());//查找所有name属性是newsletter的input元素,并将其选中$("input[name='newsletter']").attr("checked","checked");//查找所有name属性不是newsletter的input元素,并将其选中$("input[name!='newsletter']").attr("checked","checked");//查找所有name属性以'news'开头的input元素,并将其选中$("input[name^='news']").attr("checked","checked");//查找所有name属性以'letter'结尾的input元素,并将其选中$("input[name$='letter']").attr("checked","checked");//查找所有name属性包含'news'的input元素,并将其选中$("input[name*='news']").attr("checked","checked");//找到所有含有id属性,并且它的name属性是以"letter"结尾的input元素,并将其选中$("input[id][name$='letter']").attr("checked","checked");

子元素选择器

//迭代[each]每个ul中第1个li元素中的内容,索引从1开始$("ul li:first-child").each(function () {    //alert(this.text());传统js对象不能调用text    alert($(this).text());})//迭代每个ul中最后1个li元素中的内容,索引从1开始$("ul li:last-child").each(function () {    //alert(this.text());传统对象不能调用text    alert($(this).text());})//迭代每个ul中第2个li元素中的内容,索引从1开始$("ul li:nth-child(2)").each(function () {    alert($(this).text());})//在ul中查找是唯一子元素的li元素的内容$("ul li:only-child").each(function () {    alert($(this).text());})

表单选择器

//查找所有input元素的个数//alert( $("input").size() );//10,找input标签alert( $(":input").size() );//13,找input标签和select/textarea/button//查找所有文本框的个数alert( $(":text").size() );//查找所有密码框的个数alert( $(":password").size() );//查找所有单选按钮的个数alert( $(":radio").size() );//查找所有复选框的个数alert( $(":checkbox").size() );//查找所有提交按钮的个数,包括

表单对象属性选择器

//查找所有可用的input元素的个数alert($("input:enabled").size());//查找所有不可用的input元素的个数alert( $("input:disabled").size() );//查找所有选中的复选框元素的个数alert( $(":checkbox:checked").size() );//查找所有未选中的复选框元素的个数alert( $(":checkbox:NOT(:checked)").size() );//查找所有选中的选项元素的个数alert( $("select option:selected").size() );//查找id为provinceID的select的未选中的选项个数alert( $("#provinceID option:NOT(:selected)").size() );

5.jQuery方法

DOM标准规则下的jQuery常用API

//DIV标签插入到UL标签之后(父子关系)$("ul").append($("div"));//DIV标签插入到UL标签之前(父子关系)$("ul").prepend($("div"));//DIV标签插入到UL标签之后(兄弟关系)$("ul").after($("div"));//DIV标签插入到UL标签之前(兄弟关系)$("ul").before($("div"));//取得form里第一个input元素的type属性//alert($("form input:first").attr("type"));//设置form里最后一个input元素的为只读文本框$("form input:last").attr("readonly","true");//创建div元素,添加"哈哈"文本,ID属性,并添加到文档中/*js方式*/ var divElement = document.createElement("div"); divElement.innerHTML = "哈哈哈"; divElement.setAttribute("id","2015"); divElement.id = "2015"; document.body.appendChild(divElement);//jquery方式var $div = $("
哈哈哈哈
")$("body").append($div)$(document.body).append($div);//删除ID为secondID的LI元素$("#secondID").remove();//删除第一个ul中的所有LI元素$("#a li").remove();//删除第二个UL元素$("#b").remove();//复制原input元素,添加到原input元素后,与其同级var $old = $(":button");var $new = $old.clone();$new.val("新按钮");$old.after($new);//为原input元素动态添加单击事件,且复制原input元素,var $old = $(":button");$old.click(function (){ alert("动态事件");})//添加到原input元素后,与其同级,且和原按钮有一样的行为var $old = $(":button");var $new = $old.clone(true);//复制行为和样式$new.val("新按钮");$old.after($new);//双击
中的文本,用文本框替换文本$("div").dblclick( function(){ var $text = $("
"); //文本框替代div标签 $(this).replaceWith( $text );} );//为
元素添加属性border/align/width$("table").attr("border","2").attr("align","right").attr("width","60%");//将
元素的align属性删除$("table").removeAttr("align");

添加样式

//为无样式的DIV添加样式$("div:first").addClass("myClass");//为有样式的DIV删除样式$("div:last").removeClass("myClass");//切换样式,即有样式的变成无样式,无样式的变成有样式$("div").toggleClass("myClass");//最后一个DIV是否有样式var flag = $("div:last").hasClass("myClass");alert(flag?"有样式":"无样式");//获取图片的坐标var offset = $("img").offset();var x = offset.left;var y = offset.top;alert(x);alert(y);//设置图片的坐标$("img").offset({    top:100,    left:200});//获取图片的宽高var w = $("img").width();var h = $("img").height();alert(w+":"+h);//设置图片的宽高$("img").width(500);$("img").height(600);//取得div元素的直接子元素内容,不含后代元素//
//
// Hello Again// // Bold// // //
alert($("div").children().text());//Hello Again Bold//取得div元素的下一个同级的兄弟元素内容alert($("div").next().text());//取得div元素的上一个同级的兄弟元素内容alert($("div").prev().text());//依次取得div元素同级的所有兄弟中p元素的内容$("div").siblings("p").each(function(){ alert($(this).text());});

动画

//图片隐蔽$("img").hide(5000,function(){    alert("隐藏完毕");});//休息3秒window.setTimeout(function(){    $("img").show(5000);},3000);//淡出隐蔽图片$("img").fadeOut(3000);//淡入显示图片$("img").fadeIn(3000);$(":button").click(function(){    //div标标上下移动    $("div").slideToggle(100);});

6.jQuery事件

/*使用JS方式加载a()和b()二个方法,后面的覆盖前面的*/        window.onload = function(){            a();        }        window.onload = function(){            b();        }        /*使用jQuery最简方式加载a()和b()二个方法,不会覆盖两个都会执行*/        $(function(){            a();        });        $(function(){            b();        });        //当

7.jQuery中使用AJAX

  简单获取时间,jquery对象调用load,直接将返回的数据插入到jquery对象里面。对于load方法而言,如果请求体无参数发送的话,load方法采用GET方式提交,如果请求体有参数发送的话,load方法采用POST方式提交。

  简单形式:jQuery对象.load(url)

           返回结果自动添加到jQuery对象代表的标签中间

           如果是Servlet的话,采用的是GET方式

    如果是Servlet的话,采用的是GET方式。

      复杂形式:jQuery对象.load(url,sendData,function(backData,textStatus,ajax){... ...})

           sendData = {"user.name":"jack","user.pass":"123"};

           以JSON格式文本方式发送,使用POST方式发送,服务端能收到数据

function getMsg(){    var url = "${pageContext.request.contextPath}/ajax_time?time="+new Date().getTime();    // 参数一:url    // 参数二:以post方式发送的JSON格式数据    // 参数三:回调函数    $("#timeSpan").load(url,null,function(backData,textStatus,ajax){        //回调函数的三个参数        //返回的数据,它是js对象        alert(backData);        //返回状态的文本描述,例如success,error        alert(textStatus);        //ajax对象        alert(ajax.responseText);//是一个字符串    });}

验证用户是否存在,使用$.post方法。如果页面有太多数据要发送,不需要一一写json格式的发送数据,只需要调用$(jquery对象).serialize()方法,它会自动将对象中有name属性的对象自动转换为json格式的数据。

function checkEmp(input){    var empName=$(input).val();    //去掉空格    empName = $.trim(empName);    if(empName.length == 0)    return;    var url="${pageContext.request.contextPath}/emp_checkEmp?time="+new Date().getTime();    //手动写json对象    var sendData = {        empName:empName    };    //jquery自动生成json对象    //var sendData = $("form").serialize();    alert(sendData);    $.post(url,sendData, function (backData) {        //创建img标签        var $img = $("");        //清空span,然后添加图片        $("span").text("");        $("span").append($img);    })}

二级联动:

function getCity(province){    var index = province.selectedIndex;    if(index == 0)    return;    var $province = $(province[index]).text();    var url = "${pageContext.request.contextPath}/ajax_getCity?time="+new Date().getTime();    var sendData = {        province:$province    }    $.post(url,sendData,function(xml){        //清空city下拉菜单        $("#cityID option:gt(0)").remove();        //xml是js对象        var $xml = $(xml).find("city");        $xml.each(function(){            //text可以访问xml标签            var option = $("");            //添加到下拉菜单            $("#cityID").append(option);        });    })}

$.ajax方式

function getCity(province){    var index = province.selectedIndex;    if(index == 0)        return;    var $province = $(province[index]).text();    var url = "${pageContext.request.contextPath}/ajax_getCity?time="+new Date().getTime();    var sendData = {        province:$province    }    $.ajax({        type:"POST",        url:url,        data:sendData,        success:function(xml){        //清空city下拉菜单        $("#cityID option:gt(0)").remove();        //xml是js对象        var $xml = $(xml).find("city");        $xml.each(function(){            //text可以访问xml标签            var option = $("");            //添加到下拉菜单            $("#cityID").append(option);        });    }});}

 获取json数据

action方法

public class ProvinceCityAction extends ActionSupport{    private String province;    public void setProvince(String province) {        this.province = province;        //System.out.println("注入" + province);    }    //根据省份查询城市    public String findCityByProvince() throws Exception {        setCity = new LinkedHashSet
(); if("湖南".equals(province)){ setCity.add("长沙"); setCity.add("株洲"); }else if("广东".equals(province)){ setCity.add("广州"); setCity.add("中山"); setCity.add("佛山"); } return SUCCESS; } private Set
setCity; public Set
getSetCity() { return setCity; }}

js

$("#province").change( function(){            //清空原城市下拉框中的内容,除第一项外            $("#city option:gt(0)").remove();            //获取选中的省份            var province = $("#province option:selected").text();            //如果选中的不是"选择省份"            if("选择省份"!=province){                $.ajax( {                    type    : "POST",                    url     : "${pageContext.request.contextPath}/struts2/findCityByProvinceRequest?time="+new Date().getTime(),                    data    : {
"province":province}, success : function(backDate,textStatus,ajax){
//解析json文本 var array = backDate.setCity; var size = array.length; for(var i=0;i
"+city+""); $("#city").append($option); } } } ); } } );

 

转载于:https://www.cnblogs.com/juaner767/p/5616968.html

你可能感兴趣的文章
ScrollView反弹效果 仿小米私密短信效果
查看>>
Redis命令拾遗五(有序集合)
查看>>
防止WordPress利用xmlrpc.php进行暴力破解以及DDoS
查看>>
Rafy 框架 - 使用 SqlTree 查询
查看>>
Python进阶 学习笔记(一)
查看>>
电梯测试点有哪些?
查看>>
如何点击UIWebView上html链接不弹出复制粘贴
查看>>
HDU 2709 Sumsets(递推)
查看>>
spring属性注入DI
查看>>
ofo4.0时代展望移动物联网应用 让智慧生活“随意念而动”
查看>>
阿里巴巴到底是一家什么公司?
查看>>
理想生活没那么难
查看>>
程序员都用什么牌子电脑编程?国产电脑很强大啊!
查看>>
浙江查获5000余张假火车票 系跨省家族式作案网上交易
查看>>
单例模式
查看>>
287. Find the Duplicate Number
查看>>
将Android library开源到jcenter
查看>>
java线程池
查看>>
在Eclipse中使用XDebug调试代码 | Using XDebug debug code in eclipse
查看>>
[译] box-shadow 属性
查看>>