jquery介绍

jquery是一个JavaScript库(js框架),jQuery可以理解JavaScript query,该框架提供了,很多方法,让我们可以非常轻松地写出动态效果的页面,从本质将,jQuery就是对JavaScript进行封装,然后让我们使用更加便利。

特别说明:目前javascript很多,常见的有jquery,prototype,ext.js dwr.

什么是jQuery对象?

jQuery对象就是通过jQuery包装DOM对象后产生的对象。

jQuery对象是jQuery独有的,如果一个对象是jQuery对象,那么它就可以使用jQuery里的方法:$("#test").html();

jquery选择器

选择器是jQuery的根基,在jQuery中,对事件处理,遍历DOM和Ajax操作都依赖于选择器。

jQuery选择器的优点:

  • 简洁的写法
  • 完善的事件处理机制

快速入门案例

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
    <title>Document</title>
    <script type='text/javascript' src='jquery.js'></script>
</head>
<body>
    <p>abc</p>
    <p>okokok</p>
    <p>yyyy</p>
    <script type="text/javascript">
    //alert($);
    window.alert("abc="+$("p").length);
    </script>
</body>
</html>

编写jquery需要引入jquery.js文件。jquery-3.3.1.min.js文件是从官网上下载的。该文件有200多k的大小。下载网址:http://jquery.com/download/。

①基本选择器

②层次选择器

什么时候使用什么选择器(根据需求)

当选择元素时,有层次关系时就要考虑使用层次选择器。如果没有层次关系,则直接考虑使用层次选择器即可。

③过滤选择器 

过滤选择器主要是通过特定的过滤规则来筛选出所需要的DOM元素,该选择器都以":"开头。

这样理解

数据库:select * from 表名 where 条件(字段)

jquery: select * from html文件 where 过滤选择器(基本,内容,style display,属性,子元素...)

基础过滤选择器  

 

回调函数(mfc)

表示由系统帮你去调用的函数。

function mymove(){
        $("#mover").slideToggle("fast",mymove);
    }
<!DOCTYPE HTML>
<html lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
    <title>Document</title>
    <script type='text/javascript' src='jquery.js'></script>
    <style type="text/css">
    #one{
        width:45px;
        background:#D876F4;
        margin:20px;
    }

    #two,#three,#mover{
        background:#9C9AC9;
        width:150px;
        margin-top:-85px;
        position:absolute;
        float:left;
    }
    #two{
        margin-left:100px;
    }
    #two1,#two2,#three01{
        width:100px;
        height:100px;
        margin:10px;
    }
    #two,#two1,#two2,#three,#three01,#mover{
        border:1px solid black;
    }
    #three{
        margin-left:275px;
    }
    #mover{
        margin-left:450px;
    }
    </style>
</head>
<body>
    <h1>XXXXX</h1>
    <h2>XXXXXXXXXXXXXX</h2>
    <h3>XXXXXXXXXXXXXXXXXXXXXXXXX</h3>
    <input type="button" value="改变第一个div元素的背景色为" id="b1"/>
    <input type="button" value="改变最后一个div元素的背景色为 #0000FF" id="b2"/>
    <input type="button" value="改变class不为one的所有div元素的背景色为#0000FF" id="b3"/>
    <input type="button" value="改变索引值为偶数的所有div元素的背景色为#0000FF" id="b4"/>
    <input type="button" value="改变索引值为奇数的所有div元素的背景色为#0000FF" id="b5"/>
    <input type="button" value="改变索引值为大于3的所有div元素的背景色为#0000FF" id="b6"/>
    <input type="button" value="改变索引值为等于3的所有div元素的背景色为#0000FF" id="b7"/>
    <input type="button" value="改变索引值为小于3的所有div元素的背景色为#0000FF" id="b8"/>
    <input type="button" value="改变所有的标题元素背景色为#0000FF" id="b9"/>
    <input type="button" value="改变当前正在执行动画的所有元素的背景色为#0000FF" id="b10"/>
    <div id="one" class="mini">
        div id为one
    </div>
    <div id="two">
        div id为two
        <div id="two1">
            id twoo1
        </div>
        <div id="two2">
            id twoo2
        </div>
    </div>
    <div id="three" class="one">
        div id为three class one
        <div id="three01">
            id three01
        </div>
    </div>

    <div id="mover">
        执行动画
    </div>

    <span id="s_one" class="mini">
        span one
    </span>
    
    <script type="text/javascript" language="javascript">
    //如何做出动画效果,jquery提供一些特效
//**************************************
    mymove();
    function mymove(){
        $("#mover").slideToggle("fast",mymove);
    }
//**********************************
    //改变第一个div元素的背景色为#0000FF
    $("#b1").click(function (){
        $("div:first").css("background","#0000FF")
    });
//**********************************
    //改变最后一个div元素的背景色为#0000FF
    $("#b2").click(function (){
        $("div:last").css("background","#0000FF")
    });
//**********************************
    //改变class不为one的所有div元素的背景色为#0000FF
    $("#b3").click(function(){
        $("div:not(.one)").css("background","#0000FF")
    });
//**********************************
    //改变索引值为偶数的所有div元素的背景色为#0000FF
    $("#b4").click(function(){
        $("div:even").css("background","#0000FF")
    });
//**********************************
    //改变索引值为偶数的所有div元素的背景色为#0000FF
    $("#b5").click(function(){
        $("div:odd").css("background","#0000FF")
    });
//**************************************
    //改变索引值为大于3的所有div元素的背景色为#0000FF
    $("#b6").click(function(){
        $("div:gt(3)").css("background","#0000FF")
    });
//*************************************
    //改变索引值为等于3的所有div元素的背景色为#0000FF
    $("#b7").click(function(){
        $("div:eq(3)").css("background","#0000FF")
    });
//*************************************
    //改变索引值为小于3的所有div元素的背景色为#0000FF
    $("#b8").click(function(){
        $("div:lt(3)").css("background","#0000FF")
    });    
//*************************************
    //改变所有的标题元素背景色为#0000FF
    $("#b9").click(function(){
        $(":header").css("background","#0000FF")
        //$("div").css("background","#0000FF")
    });
//*************************************
    //改变当前正在执行动画的所有元素的背景色为#0000FF
    $("#b10").click(function(){
        $(":animated").css("background","#0000FF")
    });
    </script>
</body>
</html>

内容选择器的过滤规则主要体现在它所包含的子元素和文本内容上。

在eclipse中引入jquery.js文件报错的解决方案

从官方下载的jquery.js在myeclipse始终用个大大的红叉,看着很不爽,如何解决呢:jquery.js在myeclipse中报错:jquery.js -> 鼠标右键 -> MyEclipse -> manage validation -> 左面点击 -> Excluded resources -> 找到jquery.js -> 打上钩 -> apply。

css(name,value)

一个参数是获取样式,两个参数是设置样式。

//改变含有文本"id"的div元素的背景元素。
    $("#b1").click(function(){
        $("div:contains('id')").css("background","#0000FF");
    });

下面代码无效,不知其原因。

//改变含有class为mini元素的div元素的背景色为#OOOOFF
    $("#b3").click(function(){
        $("div:has(.mini)").css("background","#0000FF");
    });

详细代码如下所示:

<!DOCTYPE HTML>
<html lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
    <title>Document</title>
    <script type='text/javascript' src='js/jquery.js'></script>
    <style type="text/css">
    #one{
        width:45px;
        background:#D876F4;
        margin:20px;
    }

    #two,#three,#mover{
        background:#9C9AC9;
        width:150px;
        margin-top:-85px;
        position:absolute;
        float:left;
    }
    #two{
        margin-left:100px;
    }
    #two1,#two2,#three01{
        width:100px;
        height:100px;
        margin:10px;
    }
    #two,#two1,#two2,#three,#three01,#mover{
        border:1px solid black;
    }
    #three{
        margin-left:275px;
    }
    #mover{
        margin-left:450px;
    }
    </style>
</head>
<body>
    <h1>XXXXX</h1>
    <h2>XXXXXXXXXXXXXX</h2>
    <h3>XXXXXXXXXXXXXXXXXXXXXXXXX</h3>
    <input type="button" value="改变含有文本'i'的div元素的背景元素" id="b1"/>
    <input type="button" value="改变不包含子元素的div背景色为#0000FF" id="b2"/>
    <input type="button" value="改变含有class为mini元素的div元素的背景色为#OOOOFF" id="b3"/>
    <input type="button" value="改变含有子元素(或者文本元素)的div元素的背景色为#0000FF" id="b4"/>
    <div id="one" class="mini">
        div id为one
    </div>
    <div id="two">
        div id为two
        <div id="two1">
            id twoo1
        </div>
        <div id="two2">
            id twoo2
        </div>
    </div>
    <div id="three" class="one">
        div id为three class one
        <div id="three01">
            id three01
        </div>
    </div>
    
    <div class="one">
    d
    </div>

    <div id="mover">
        执行动画
    </div>

    <span id="s_one" class="mini">
        span one
    </span>
    
    <script type="text/javascript">
    //********************
    //改变含有文本"id"的div元素的背景元素为#0000FF
    $("#b1").click(function(){
        $("div:contains('two')").css("background","#0000FF");
    });
    //********************
    
    //改变不包含子元素(或文本元素)的div背景色为#0000FF
    $("#b2").click(function(){
        $("div:not(:contains('di'))").css("background","#0000FF");
    });
    
    //改变含有class为mini元素的div元素的背景色为#OOOOFF
    $("#b3").click(function(){
        $("div:has(.mini)").css("background","#0000FF");
    });
    //改变含有子元素(或者文本元素)的div元素的背景色为#0000FF
    $("#b4").click(function(){
        $("div:parent").css("background","#0000FF");
    });
    </script>
</body>
</html>

 

可见过滤选择器是根据元素的可见和不可见状态来选择相应的元素

1、:hidden

2、:visible

//改变含所有可见的div元素的背景元素为#0000FF
    $("#b1").click(function(){
        $("div:visible").css("background","#0000FF");
    });
    //********************
    
    //选取所有不可见的元素,利用jquery中的show()方法将它们显示出来
    $("#b2").click(function(){
        //$("div:not(:contains('di'))").css("background","#0000FF");
        $("div:hidden").css("display","inline").css("background","red");
    });

效果相似的两条语句

//$("div:hidden").css("display","inline").css("background","red");
$("div:hidden").show().css("background","red");

each是jquery的一个工厂函数(可以理解成全局函数)

 

 

posted @ 2018-10-22 12:05  寒潭渡鹤影  阅读(221)  评论(0编辑  收藏  举报