jquery基础

 

一、jquery简介

jQuery是使用JavaScript语言编写的函数库。它提供如下主要功能:

  1. 方便定位文档中的元素节点
  2. 方便修改节点内容及显示样式
  3. 方便处理用户操作事件
  4. 方便为页面添加动态效果;如淡入淡出
  5. 更便捷的AJAX应用接口

  jQuery库有development和production版的区别。要使用jQuery,需在HTML页面中使用<script>进行导入。

聚焦引入jquery

<body>
    <script>
    方法一:
         $(document).ready(function() {
            //让鼠标聚焦
            $("input[name=userName]").focus();
        }) 
    方法二:
         $().ready(function() {
            //让鼠标聚焦
            $("input[name=userName]").focus();
        }) 
    方法三:
        jQuery(function() {
            //让鼠标聚焦
            jQuery("input[name=userName]").focus();
        })
    </script>
    用户名:<input type="text" name="userName" /><br/>
    年龄:<input type="text" name="age" /><br/>
</body>

导入jquery:

<script type="text/javascript" src="文件路径"></script>

 

jQuery对象具有集合性质,一个jQuery对象中可能包含多个DOM节点。jQuery对象的length属性和size()方法会返回其中包含的DOM节点的个数。如果需要获得jQuery对象中的DOM节点对象,可使用get(index)方法。如果要将普通的DOM节点转换为jQuery对象,可使用$( )函数:$(DOM对象)

 

dom对象和jquery对象之间的转化

<script type="text/javascript">
    $(function(){
        //查找用户名
        //dom对象
        var domObj = document.getElementsByName("userName")[0];
        //dom对象转成jquery对象 
        console.log($(domObj));
        //输出控制台
        /* console.log(domObj); */
        //jqurey对象
        var jqueryObj = $("input[name=userName]")
        //输出控制台
        /* console.log(jqueryObj); */
        //jquery对象转成dom对象
        console.log(jqueryObj.get(0));
    });
</script>
<body>
    用户名:<input type="text" name="userName"/><br>
    年龄:<input type="text" name="age"/>
</body>

两个对象转换后浏览器的结果:

 

二、选择和过滤

选择

id选择器,class选择器,标签选择器

<script type="text/javascript">
    $(function () {
        //id选择器
        //查找id为user的文本框,并设置样式
        $("#user").css("background","#ff0000");
        //查找class为age的文本框,并设置样式
        $(".age").css("background","#00ff00");
        //标签选择器
        $("span").css({
            "font-size":"50px",
            "color":"#ff0000",
        });
    })
</script>
<body>
    <input type="text" name="userName" id="user" /><br />
    <input type="text" name="age" class="age" /><br />
    <span>Hello World!</span>
</body>

同时给多个标签加样式:群组选择器  ( , )

<script type="text/javascript">
    $(function () {
        //给table,tr,td设置样式
        $("table,tr,td").css({
            "border":"solid 1px #ff0000",
            "border-collapse":"collapse",
            "width":"120px",
            "text-align":"center",
            });
    });
</script>
<body>
    <table>
        <tr>
            <td>1</td>
            <td>2</td>
            <td>3</td>
        </tr>
        <tr>
            <td>1</td>
            <td>2</td>
            <td>3</td>
        </tr>
        <tr>
            <td>1</td>
            <td>2</td>
            <td>3</td>
        </tr>
        <tr>
            <td>1</td>
            <td>2</td>
            <td>3</td>
        </tr>
    </table>
</body>

选择所有元素:通配选择器  ( * )

<script type="text/javascript">
        $(function () {
            //选择body下的所有元素,并设置背景
            $("body *").css({
                "background":"#aa4499",
            });
        });
</script>
<body>
    <div>123</div>
    <p>456</p>
    <span>789</span>
</body>    

查找input元素:标签选择器

<script type="text/javascript">
    $(function() {
        //查找input元素,jquery天生具有集合性
        console.log($("input"));
        //输出长度
        console.log("input的长度:" + $("input").length);
        //输出长度
        console.log("input的长度:" + $("input").size());
    })
</script>
<body>
    账号:<input type="text" name="account" /><br />
    用户名:<input type="text" name="userName" /><br />
    性别:<input type="radio" name="gender" value="1" /><input type="radio" name="gender" value="0" />女<br />
    密码:<input type="password" name="pwd" /><br />
    <p>我是一个段落</p>
</body>

选择紧挨着的第一个兄弟  ( + )

<script type="text/javascript">
    $(function () {
        //给h1后面的第一个兄弟p设置样式
        $("h1+p").css({
            "background":"#00ff00",
        });
    });
</script>
<body>
    <h1>This is heading</h1>
    <p>This is paragraph</p>
    <p>This is paragraph</p>
    <p>This is paragraph</p>
    <p>This is paragraph</p>
    <p>This is paragraph</p>
    <p>This is paragraph</p>
</body>

选择所有兄弟  ( ~ )

<script type="text/javascript">
        //给div下面的所有兄弟input标签加样式
        $(function () {
            $("#div2~input").css({
            "background":"#dd4499",
            "color":"#000000",
            }); 
        });
</script>
<body>
    <div>div1</div>
    <div id="div2">div2</div>
    <input type="text" name="userName" /><br />
    <input type="text" name="age" /><br />
    <input type="button" value="点我" /><br />
    <p>Hello World!</p>
</body>

给指定的兄弟加样式 :eq( )

<script type="text/javascript">
        $(function () {
            //给div2后面的指定兄弟input标签加样式
                $("#div2~input:eq(1)").css({
                    "background":"#dd4499",
                    "color":"#000000",
                });
            });
</script>
<body>
    <div>div1</div>
    <div id="div2">div2</div>
    <input type="text" name="userName" /><br />
    <input type="text" name="age" /><br />
    <input type="button" value="点我" /><br />
    <p>Hello World!</p>
</body>

给后代设置样式(所有子孙)

<script type="text/javascript">
    $(function () {
        //给div的后代span设置样式
        $("#container span").css({
            "background":"#aa1188",
            "color":"#ffffff",
        });    
    });
</script>
<body>
    <div id="container">
        <span>div span</span>
        <div>
            <span>div div span</span>
        </div>
    </div>
</body>

选择第一个子  >

<script type="text/javascript">
    $(function () {
        //给div的第一个儿子设置样式
        $("#container>span").css({
            "background":"#00ff00",
            "color":"#000000",
        });
    });
</script>
<body>
    <div id="container">
        <span>div span</span>
        <div>
            <span>div div span</span>
        </div>
    </div>
</body>

过滤 (过滤器都以:开始)

1.基本过滤

<body>
    <table>
        <thead>
            <!-- 0 -->
            <tr>
                <td>编号</td>
                <td>名称</td>
                <td>分类</td>
            </tr>
        </thead>
        <tbody>
            <!-- 1 -->
            <tr>
                <td>001</td>
                <td>苹果</td>
                <td>水果</td>
            </tr>
            <!-- 2 -->
            <tr>
                <td>002</td>
                <td>土豆</td>
                <td>蔬菜</td>
            </tr>
            <!-- 3 -->
            <tr>
                <td>003</td>
                <td>菜刀</td>
                <td>厨具</td>
            </tr>
            <!-- 4 -->
            <tr>
                <td>004</td>
                <td>香蕉</td>
                <td>水果</td>
            </tr>
        </tbody>
    </table>
    <table>
        <thead>
            <!-- 5 -->
            <tr>
                <td>编号</td>
                <td>名称</td>
                <td>分类</td>
            </tr>
        </thead>
        <tbody>
            <!-- 6 -->
            <tr>
                <td>001</td>
                <td>苹果</td>
                <td>水果</td>
            </tr>
            <!-- 7 -->
            <tr>
                <td>002</td>
                <td>土豆</td>
                <td>蔬菜</td>
            </tr>
            <!-- 8 -->
            <tr>
                <td>003</td>
                <td>菜刀</td>
                <td>厨具</td>
            </tr>
            <!-- 9 -->
            <tr>
                <td>004</td>
                <td>香蕉</td>
                <td>水果</td>
            </tr>
        </tbody>
    </table>
</body>

给第一个tr设置背景色  tr:first    编号从0开始

$(function () {
    $("tr:first").css({
            "background":"#ff0000",
        });
    });

给最后一个tr设置背景色  tr:last

$(function () {
    $("tr:last").css({
        "background":"#00ff00",
        });
    });

给偶数行,设置背景色  tr:even    编号从0开始

$(function () {
    $("tr:even").css({
        "background":"#0000ff",
        });
    });

给奇数行,设置背景色  tr:odd    编号从0开始

$(function () {
    $("tr:odd").css({
        "background":"#0000ff",
        });
    });

编号大于三的tr,设置背景色  :gt(3)   编号从0开始,不包含3

$(function () {
  //让编号>3的tr,设置背景色:great than
    $("tr:gt(3)").css({
        "background":"pink",
        });
    });

编号小于三的tr,设置背景色  :lt(3)    编号从0开始,不包含3

$(function () {
    //让编号<3的tr,设置背景色:litter than
    $("tr:gt(3)").css({
        "background":"pink",
        });
    });

编号等于三的tr,设置背景色  :eq(3)

$(function () {
    //让编号=3的tr,设置背景色:equals
    $("tr:eq(3)").css({
        "background":"#dd4411",
        "color":"#000000",
        });
    });

2.根据节点包含的内容进行过滤

包含元素的(区分大小写)  :contains( )

<script type="text/javascript">
        $(function () {
            //包含元素的,区分大小写
            $("div:contains(W)").css({
                "background":"#ff0000",
            });
        });
</script>
<body>
    <div>hello world!</div>
    <div>hello World!123</div>
</body>

查找不含子元素的  :empty

<script type="text/javascript">
        //查找不含子元素和文本的div,并设置样式
        $(function () {
            $("div:empty").css({
                "background":"#ff0000",
                "width":"300px",
                "height":"300px",
            });
        });
</script>
<body>
        <div></div>
        <div>
        </div>
        <div>Hello World!</div>
        <div>Hello <span>World!</span></div>
</body>

因为第二个div包含空格,所以不会加样式,浏览器效果为:

包含span元素的  :has(span)

<script type="text/javascript">
        $(function () {
            //div下面包含span元素的
            $("div:has(span)").css({
                "background":"#00ff00",
            });
        });
</script>
<body>
    <div>Hello World!</div>
    <div>Hello <span>World!</span></div>
</body>

3.根据节点的可见性进行过滤

获取元素的值    :visible  可见  :hidden  不可见

<script type="text/javascript">
        $(function () {
            //获取可见的input元素的值
            var v1 = $("input[type=text]:visible").val();
            //获取隐藏的input元素的值
            //方法一
            var v2 = $("input:hidden:eq(0)").val();
            //方法二
            var v2_1 = $("input[type=text]:hidden").val();
            //获取隐藏域的值
            var v3 = $("input:hidden:eq(1)").val();
            //输出v1,v2.v3
            document.write("v1:" + v1 + "<br />");
            document.write("v2:" + v2 + "<br />");
            document.write("v2_1:" + v2_1 + "<br />");
            document.write("v3:" + v3 + "<br />");
        });
</script>
<body>
    <input type="text" value="我是可见的input元素" /><br />
    <input type="text" value="我是隐藏的input元素" style="display: none;" /><br />
    <input type="hidden" value="我是隐藏域" /><br />
    <input type="button" value="我是按钮" /><br />
</body>

4.根据节点的属性进行过滤

  • [attribute]  包含给定属性
  • [attribute=value]  给定的属性是某个特定值  例: $("input[name='newsletter']")
  • [attribute!=value]  给定的属性不是某个特定值。  例: $("input[name!='newsletter']")

  其它类似的:

  • [attribute ^= value]  给定的属性其值以value开始。
  • [attribute $= value]  给定的属性其值以value结束。
  • [attribute *= value]  给定的属性其值中包含有value。
<body>
    <form action="/servlet_demo_anno/userServlet?" method="get">  <!-- /servlet_demo_anno/userServlet?account=zhangsan&pwd=123  -->
         Account:<input type="text" name="account"/><br><!-- zhangsan -->
         Password:<input type="password" name="pwd"/><br><!-- 123 -->
         验证码:<input type="text" name="verifyCode"><img src="/servlet_demo_anno/verifyServlet"/><br />
         <input type="submit" value="登录1">
         <input type="submit" value="登录2">
         <input type="button" value="按钮">
    </form>
</body>

给密码框设置背景色:  =

<script type="text/javascript">
        $(function () {
            //给密码框设置背景色
            $("input[name = pwd]").css({
                "background":"#ff0000",
            });
        });
</script>

给不是密码的文本框,设置背景色:  !=

<script type="text/javascript">
        $(function () {
            //给不是密码的文本框,设置背景色
            $("input[type = text][name != pwd]").css({
                "background":"#ff0000",
            });
        });
</script>

设置有value属性的节点,设置背景色:  [value]

<script type="text/javascript">
        $(function () {
            //给不是密码的文本框,设置背景色
            $("input[value]").css({
                "background":"#ff0000",
            });
        });
</script>

名字以ac开头,设置背景色:  ^=

<script type="text/javascript">
        $(function () {
            //名字以ac开头,设置背景色
            $("input[name ^= ac]").css({
                "background":"#ff0000",
            });
        });
</script>

value属性值里面,以2结尾的:  $=

<script type="text/javascript">
        $(function () {
            //value属性值里面,以2结尾的
            $("input[value $= 2]").css({
                "background":"#ff0000",
            });
        });
</script>

value属性里面,含有“录”的:  *=

<script type="text/javascript">
        $(function () {
            //value属性里面,含有“录”的
            $("input[value *= 录]").css({
                "background":"#ff0000",
            });
        });
</script>

5.节点作为儿子节点的角度进行过滤

根据节点的属性进行过滤

<body>
    <table>
        <thead>
            <tr>
                <td>编号</td>
                <td>名称</td>
                <td>分类</td>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td>001</td>
                <td>苹果</td>
                <td>水果</td>
            </tr>
            <tr>
                <td>002</td>
                <td>土豆</td>
                <td>蔬菜</td>
            </tr>
            <tr>
                <td>003</td>
                <td>菜刀</td>
                <td>厨具</td>
            </tr>
            <tr>
                <td>004</td>
                <td>香蕉</td>
                <td>水果</td>
            </tr>
        </tbody>
    </table>
    <table>
        <thead>
            <tr>
                <td>编号</td>
                <td>名称</td>
                <td>分类</td>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td>001</td>
                <td>苹果</td>
                <td>水果</td>
            </tr>
            <tr>
                <td>002</td>
                <td>土豆</td>
                <td>蔬菜</td>
            </tr>
            <tr>
                <td>003</td>
                <td>菜刀</td>
                <td>厨具</td>
            </tr>
            <tr>
                <td>004</td>
                <td>香蕉</td>
                <td>水果</td>
            </tr>
        </tbody>
    </table>
</body>

选取父节点的第2个孩子,编号从1开始  :nth-child(2)

1 <script type="text/javascript">
2         $(function () {
3             //选取父节点的第2个孩子,编号从1开始
4             $("tr:nth-child(2)").css({
5                 "background":"#ff0000",
6             });
7         });
8 </script>

选择父节点的第一个孩子,编号从1开始  :first-child

<script type="text/javascript">
        $(function () {
            //选择父节点的第一个孩子,编号从1开始
            $("tr:first-child").css({
                "background":"#ff0000",
            });
        });
</script>

父节点的最后一个孩子,编号从1开始  :last-child

<script type="text/javascript">
        $(function () {
            //父节点的最后一个孩子,编号从1开始
            $("tr:last-child").css({
                "background":"#ff0000",
            });
        });
</script>    

父节点的唯一孩子,编号从1开始  :only-child

<script type="text/javascript">
        $(function () {
            //父节点的唯一孩子,编号从1开始
            $("tr:only-child").css({
                "background":"#ff0000",
            });
        });
</script>    

父节点的偶数顺序孩子,编号从1开始  :nth-child(even)

<script type="text/javascript">
        $(function () {
            //父节点的偶数顺序孩子,编号从1开始
            $("tr:nth-child(even)").css({
                "background":"#ff0000",
            });
        });
</script>

父节点的奇数顺序孩子,编号从1开始  :nth-child(odd)

<script type="text/javascript">
        $(function () {
            //父节点的奇数顺序孩子,编号从1开始
            $("tr:nth-child(odd)").css({
                "background":"#ff0000",
            });
        });
</script>

满足方程式的节点的孩子,编号从0开始  :nth-child(2n)

<script type="text/javascript">
        $(function () {
            //满足方程式的节点的孩子,编号从0开始
            $("tr:nth-child(2n)").css({
                "background":"#ff0000",
            });
        });
</script>

满足方程式的节点的孩子,编号从0开始  :nth-child(2n+1)

<script type="text/javascript">
        $(function () {
            //满足方程式的节点的孩子,编号从0开始
            $("tr:nth-child(2n+1)").css({
                "background":"#ff0000",
            });
        });
</script>

 

6.根据节点状态进行过滤

  :checked 被选中 (复选框、单选框等)   例:$("input:checked")

  :enabled 可用  例:$(“#form1 input[type=button]:enabled”)

  :disabled 不可用  例:$("#form1 input[type=button][id!=btnTest]:disabled")

  :selected 被选中(针对select的option元素)  例:$("select option:selected")

 

选中的复选框消失  :checked

<script type="text/javascript">
        $(function () {
            //选中的复选框消失
            $("input[name = hobby]:checked").hide();
        });
</script>
<body>
    爱好:
    <input type="checkbox" value="1" name="hobby">篮球
    <input type="checkbox" value="2" name="hobby">足球
    <input type="checkbox" value="3" name="hobby" checked="checked">羽毛球
    <input type="checkbox" value="4" name="hobby">网球
    <input type="checkbox" value="5" name="hobby">java
</body>

没有选中的复选框消失  :not(:checked)

<script type="text/javascript">
        $(function () {
            //没有选中的复选框消失
            $("input[name = hobby]:not(:checked)").hide();
        });
</script>
<body>
    爱好:
    <input type="checkbox" value="1" name="hobby">篮球
    <input type="checkbox" value="2" name="hobby">足球
    <input type="checkbox" value="3" name="hobby" checked="checked">羽毛球
    <input type="checkbox" value="4" name="hobby">网球
    <input type="checkbox" value="5" name="hobby">java
</body>

可用的和不可用的增加样式  :enable  :disable

<script type="text/javascript">
        $(function () {
            //给可用的按钮添加背景色
            $("input[type = button]:enabled").css({
                "background":"#ff0000",
            });
            //给不可用的且名字不为btn3的按钮添加样式
            //方法一
            $("input[type = button][name != btn3]:disabled").css({
                "background":"#ff0000",
            });
            //方法二
            $("input[type = button]:disabled:eq(0)").css({
                "background":"#ff0000",
            });
        });
</script>
<body>
    <input type="button" value="按钮1">
    <input type="button" value="按钮2" disabled="disabled" name="btn2">
    <input type="button" value="按钮3" disabled="disabled" name="btn3">
</body>

选中的和没有选中的  :selected

<script type="text/javascript">
        $(function () {
            //让选中的option的字体变大
             $("select option:selected").css({
                "font-size":"40px",
            }); 
            //让没有选中的option,改变其背景色
            $("select option:not(:selected)").css({
                "background":"#ff7788",
            });
        });
</script>
<body>
    专业:
    <select name="major" multiple="multiple">
    <option>-------请选择--------</option>
    <optgroup label="数学系"></optgroup>
        <option>数学一</option>
        <option>数学二</option>
        <option>数学三</option>
    <optgroup label="计算机系"></optgroup>
        <option selected="selected">计算机科学与技术</option>
        <option>大数据</option>
        <option>软件工程</option>
    </select>
</body>

三、修改css属性及样式

1、和CSS类相关的方法:

  • addClass(“className”)
  • removeClass(“className”) //去掉CSS类。 如果没有参数则去掉所有CSS类
  • hasClass(“className”) //判断是否含有特定的CSS类
  • toggleClass(“class_name”); //交替添加或删除CSS类

2、和CSS样式属性相关的方法:

  • css(“propertyName”) //获取样式属性值
  • css(“propertyName”,”propertyValue”) //设置样式属性值

  注: 属性名支持连字符表示法和驼峰表示法。

3、设置一组样式属性值

  • css({“propertyName1”:”propertyValue1”,” propertyName2”:” propertyValue2”})

CSS类相关的方法

 

<style type="text/css">
        .style1{
        background-color: orange;
        }
        .style2{
            width: 260px;
            height: 300px;
        }
</style>
<script type="text/javascript">
        $(function () {
            //给按钮注册一个单击事件
            $("button").on("click",function (){
                //单击的动作
                //判断style1有没有样式类,有就删除,没有就添加
                if($("input[name = userName]").hasClass("style1")){
                    //删除
                    $("input[name = userName]").removeClass("style1");
                }else {
                    //添加
                    $("input[name = userName]").addClass("style1");
                }
            });
            //给toggle按钮注册一个单击事件
            $("input[type = button]").click(function () {
                //添加或者删除两个样式类
                $("input[name = userName]").toggleClass("style1");
                $("input[name = userName]").toggleClass("style2");
            });
        });
</script>
<body>
    <input type="text" name="userName" />
    <button>按钮</button>
    <input type="button" value="toggle" />
</body>

点击按钮,则input标签背景变为橘色,效果如图:

再次点击按钮input标签,则背景会消失。

点击toggle,则会出现style2的样式,效果如图:

toggle按钮在两者之间进行切换,在点击toggle按钮会回到初始状态,如图:

CSS样式属性相关的方法(给标签设置样式和获取样式

<script type="text/javascript">
        $(function () {
            //设置背景色
            $("input[name = userName]").css({
                "background":"#ff0000",
            });
            //获取背景色
            console.log($("input[name = userName]").css("background"));
        });
</script>
<body>
    <input type="text" name="userName" />
    <p>hello world</p>
</body>

四、文档处理

1、更改元素节点的属性

  addClass() 和 removeClass() 函数本身就是更改元素的 class 属性。

2、对于元素的内置属性,可使用prop函数进行获取和设置(jQuery1.6以前使用attr函数,此函数现在用于设置和获取元素的自定义属性):

  prop(‘attrName’) ;

  prop(‘attrName’,’value’) ;

  prop(‘attrName’, function(index, oldAttr)) ; 第二个参数是返回属性值的函数,index为当前元素的索引值,oldAttr为原先的属性值;

  removeProp(‘attrName’) ;

内置属性

<script type="text/javascript">
        $(function() {
            //给按钮注册一个单击事件
            $("input[value= 按钮]").click(function () {
            //将option的value属性统一改成它的下标
            $("select option").prop("value",function (index,old) {
                //输出老的value属性值
                /* console.log(old); */ 
                //输出index:当前option的序号:0-7
                /* console.log(index); */
                return old.substring(5); //当点击按钮的时候,将option的value值改为数字1-8
                });
            });
        });
</script>
<body>
    <select>
        <option value="index1">项目1</option><!-- 0 -->
        <option value="index2">项目2</option>
        <option value="index3">项目3</option>
        <option value="index4">项目4</option>
        <option value="index5">项目5</option>
        <option value="index6">项目6</option>
        <option value="index7">项目7</option>
        <option value="index8">项目8</option>
    </select>
    <input type="button" value="按钮">
</body>

获取input标签的checked属性

<script type="text/javascript">
        $(function () {
            //默认找第一个input标签的checked属性,有true,无false(即使其他input有checked属性)
            console.log($("input[name = hobby]").prop("checked"));
            //获取第二个复选框的checked属性
            /* console.log($("input[name = hobby]:checked").prop("checked")); */
            //获取第二个复选框的checked属性
            /* console.log($("input[name = hobby]:eq(1)").prop("checked")); */
        });
</script>
<body>
    <input type="checkbox" name="hobby" value="1" />篮球
    <input type="checkbox" name="hobby" value="2" checked="checked" />足球
    <input type="checkbox" name="hobby" value="3" />网球
</body>

修改属性值的样式

<style type="text/css">
    div{
        border:  1px solid black;
        width: 80%;
        height: 250px;
    }
    .back{
        background-color: gray;
    }
    .font{
        font-size: 64px;
        color: yellow;
    }
    .reset{
        font-size: 32px;
        color: blue;
    }
</style>
    <script type="text/javascript">
        $(function () {
            //给按钮注册一个单击事件
            $("button").click(function () {
                //将名为class的属性值的样式改成reset的样式
                $("div").prop("class","reset")                
            });
        });
    </script>
<body>
    <div class="back font">Hello World!</div>
    <button>按钮</button>
</body>

3、设置一组属性值

  $("#container a").prop({"href":"http://www.baidu.com","title":"百度"});

修改子元素的属性值

<script type="text/javascript">
        $(function () {
            //点击按钮,执行修改p的子元素a的href属性(点击按钮后,控制台会变成谷歌.com)
            $("button").click(function () {
                //方法一
                $("p a").attr("href","http://www.google.com");
                //方法二
                $("p a").prop("href","http://www.google.com");
            });
        });
</script>
<body>
    <p>Hello world<a href="http://www.baidu.com">你好</a></p>
    <button>点我</button>
</body>

4、修改/获取元素节点的内容

  • html() //获取或设置元素中的html内容
  • text() //获取或设置元素中的文本内容
  • val() //获取或设置输入性控件的值。如:文本框,单选按钮,复选框和下拉列表等
 1 <script type="text/javascript">
 2         $(function () {
 3             //给btn1注册一个单击事件
 4             $("#btn1").click(function () {
 5                 //设置p1的html内容
 6                 $("#p1").html("Hello,<b>World!</b>");
 7             });
 8             //给btn2注册一个单击事件
 9             $("#btn2").click(function () {
10                 //设置p2的文本内容
11                 $("#p2").text("Hello,World!");
12             });
13             //给btn3注册一个单击事件
14             $("#btn3").click(function () {
15                 //设置p3的用户名
16                 $("#p3 input").val("wangmazi");
17             });
18             //给btn4注册一个单击事件
19             $("#btn4").click(function () {
20                 //获取p1的html内容
21                 console.log($("#p1").html());
22             });
23             //给btn5注册一个单击事件
24             $("#btn5").click(function () {
25                 //获取p2的文本内容
26                 console.log($("#p2").text());
27             });
28             //给btn6注册一个单击事件
29             $("#btn6").click(function () {
30                 //获取p3的用户名
31                 console.log($("#p3 input").val());
32             });
33         });
34 </script>
35 <body>
36     <!-- p的html内容=<span>你好</span>这里是我随便输入的 html()-->
37     <!-- 获取p的文本内容 =这里是我随便输入的 text() -->
38     <!-- 获取用户名:获取用户名文本框的value属性值  val()-->
39     <p id="p1"><span>你好</span></p>
40     <p id="p2">这里是我随便输入的</p>
41     <p id="p3"><input type="text" name="userName" value="zhangsan"></p>
42     <!-- 设置 -->
43     <input type="button" value="设置p1的html内容" id="btn1"/><br>
44     <input type="button" value="设置p2的文本内容" id="btn2"/><br>
45     <input type="button" value="设置p3的用户名" id="btn3"/><br>
46     <hr>
47     <!-- 获取 -->
48     <input type="button" value="获取p1的html内容" id="btn4"/><br>
49     <input type="button" value="获取p2的文本内容" id="btn5"/><br>
50     <input type="button" value="获取p3的用户名" id="btn6"/><br>
51 </body>

5、添加HTML元素内容

  after(content) //在节点之后插入内容。 参数content可以是HTML片段和DOM节点,如果是页面已存在的DOM节点或jQuery对象,则是移动操作

 1 <script type="text/javascript">
 2         $(function () {
 3             //给div后面添加一个超链接
 4             $("div").after("<a href='http://www.baidu.com'>点我访问百度</a>" + "<br />");
 5             $("div").after($("<a href='http://www.baidu.com'>访问百度</a>" + "<br/>"));//a标签会在浏览器首先显示
 6         });
 7 </script>
 8 <body>
 9     <div>我是一个div块</div>
10 </body>

  类似的函数:

    before( )

    append( ) //节点内部追加

    prepend( ) //节点内部前置

 1 <script type="text/javascript">
 2         $(function () {
 3             //给div添加一个子元素,并且搁置在最后面
 4             $("div").append("<a href='http://www.baidu.com'>点我访问百度</a>");
 5             //给div添加一个子元素,并且搁置在最前面
 6             $("div").prepend($("<a href='http://www.baidu.com'>访问百度</a>" + "<br />"));
 7         });
 8 </script>
 9 <body>
10     <div>
11         <span>我是一个div块</span>
12         <b>div</b>
13         <br />
14     </div>
15 </body>

  另外,还有一些反转方式的方法:

    insertAfter( )、insertBefore( )、appendTo( )、prependTo( )

6、empty() //删除元素所有子节点,清空节点中的内容

7、remove() //删除元素节点

 1 <script type="text/javascript">
 2         $(function () {
 3             //删除编号为“2”的li子元素
 4             $("ul li:eq(2)").empty();
 5             //删除编号为“2”的li
 6             $("ul li:eq(2)").remove();
 7         });
 8 </script>
 9 <body>
10     <ul>
11         <li>项目一</li>
12         <li>项目二</li>
13         <li><span>项目</span>三</li>
14         <li>项目四</li>
15     </ul>
16 </body>

8、筛选节点

  next(),prev()  //获取下一个或前一个兄弟节点。

  children()  //获取元素的子节点,不包括孙子及其他后代节点。

  siblings()  //获取前后所有兄弟节点。

  parent()  //获取父节点;

  parents()  //获取所有祖先节点。

 1 <script type="text/javascript">
 2         $(function () {
 3             //获取div的所有子元素
 4             var nodes = $("div").children();
 5             //遍历div的所有子元素
 6             //方式一
 7             nodes.each(function (index) {
 8                 //this指向当前dom元素
 9                 console.log(index + "" + $(this).html());
10             });
11             //方式二
12             $.each(nodes,function (index,data) {
13                 //data:当前的dom元素
14                 console.log(index + "" + $(data).html());
15             });
16         });
17 </script>
18 <body>
19     <div>
20         我是div的<span>子元素</span>
21         我是div的<span>子元素</span>
22         我是div的<span>子元素</span>
23         我是div的<span>子元素</span>
24         我是div的<span>子元素</span>
25         我是div的<span>子元素</span>
26         我是div的<span>子元素</span>
27         我是div的<span>子元素</span>
28         我是div的<span>子元素</span>
29         我是div的<span>子元素</span>
30     </div>
31 </body>

 

9、对集合的遍历,可使用:

  obj.each(function(index){

    // 函数中的this关键字指向DOM节点

  });

  或者使用:

  $.each(ch,function(index,data){

    // data引用了每个DOM节点

  });

五、事件处理

1、$(document).ready(fn)

  每一次调用$(document).ready() 都是向事件队列中追加函数,多个函数会按照注册的顺序依次被调用。

  注册的函数在HTML文档被解析为DOM树之后马上被执行,不会等待页面中的图片等元素完成下载;

 2、使用on(‘eventName’, fn) 方法可以为节点绑定事件处理函数(jQuery1.7以前使用bind函数)。 eventName可取标准javascript事件名,如:

  blur,focus,change,select,click,mouseover,keydown等。 

 1 <script type="text/javascript">
 2         $(function () {
 3             //给用户名注册一个聚焦事件,设置用户名聚焦时input的背景色
 4             $("input[name = userName]").on("focus",function () {
 5                 //查找用户名
 6                 $("input[name = userName]").css("background","#ff0000");
 7             });
 8             //给用户名注册一个焦点离开事件,设置焦点离开时input的背景色
 9             $("input[name = userName]").on("blur",function () {
10                 $("input[name = userName]").css("background","#00ff00");
11             });
12         });
13 </script>
14 <body>
15     <input type="text" name="userName" /><br />
16     <input type="text" name="age" /><br />
17 </body>

3、jQuery还提供了一些绑定标准事件的简单方式,比如.click(fn)方法等效于.on(‘click’,fn)。如果调用click()时未提供参数,则是触发事件。还有以下简化方式:

  blur, focus, click, mouseover, mouseout, change, select, submit, keydown, keypress, keyup。

  【示例】全部选择复选框,反选复选框

 1 $(function () {
 2         //给全选复选框注册一个单机事件
 3         $("input[name = chkAll]").click(function () {
 4             //让本页5个复选框的checked属性=全选复选框的checked属性
 5             //查找5个复选框
 6             var nodes = $("input[name = chkedPrdId]");
 7             //设置5个复选框的属性
 8             nodes.prop("checked",$("input[name = chkAll]").prop("checked"))
 9         });
10         //给反选复选框注册一个单击事件
11         $("input[name = unChk]").click(function () {
12             //获取选中的复选框节点
13             var yes = $("input[name = chkedPrdId]:checked");
14             //获取没有选中的复选框节点
15             var no = $("input[name = chkedPrdId]:not(:checked)");
16             //将yes的checked属性设置为false
17             yes.prop("checked",false);
18             //将no的checked属性设置为true
19             no.prop("checked",true);
20         });
21     });

4、hover函数

  hover()接受两个函数作为参数,第一个函数会在鼠标进入对象时触发,第二个函数会在鼠标离开元素时触发。

 1 <script type="text/javascript">
 2         $(function () {
 3             $("div").hover(function () {
 4                 //鼠标进入div的时候,设置样式
 5                 $("div").css("background","#ff0000");
 6             },function () {
 7                 //鼠标进离开div时候,修改样式                
 8                 $("div").css("background","#00ff00");
 9             })
10         })
11 </script>
12 <body>
13     <div>
14         我是div的<span>子元素</span><br>
15         我是div的<span>子元素</span><br>
16         我是div的<span>子元素</span><br>
17         我是div的<span>子元素</span><br>
18         我是div的<span>子元素</span><br>
19         我是div的<span>子元素</span><br>
20         我是div的<span>子元素</span><br>
21         我是div的<span>子元素</span><br>
22         我是div的<span>子元素</span><br>
23         我是div的<span>子元素</span><br>
24     </div>
25 </body>

六、显示效果

1、显示和隐藏页面元素:show() 和 hide()

  hide() 方法将元素的样式属性设置为display:none ;

  show() 方法会恢复元素的 display属性值到之前的状态

 1 <script type="text/javascript">
 2         $(function () {
 3             $("p").click(function () {
 4                 //this: 当前dom元素
 5                 $(this).hide();
 6             });
 7         });
 8 </script>
 9 <body>
10     <p>点击我,我会隐藏</p>
11     <p>点我隐藏</p>
12     <p>隐藏</p>
13 </body>

 

 1 <script type="text/javascript">
 2         $(function () {
 3             //给btn1注册一个单击事件
 4             $("#btn1").click(function () {
 5                 //隐藏p
 6                 $("p").hide();
 7             });
 8             //给btn2注册一个单击事件
 9             $("#btn2").click(function () {
10                 //显示p
11                 $("p").show();
12             });
13             //给btn3注册一个单击事件
14             $("#btn3").click(function () {
15                 //隐藏p1
16                 $("#p1").hide();
17             });
18             //给btn4注册一个单击事件
19             $("#btn4").click(function () {
20                 //显示p1
21                 $("#p1").show();
22             });
23         });
24 </script>
25 <body>
26     <p id="p1">如果点击隐藏按钮,我就会消失</p>
27     <p>这一行,暂时不隐藏</p>
28     <input type="button" value="隐藏p" id="btn1"><br>
29     <input type="button" value="显示p" id="btn2"><br>
30     <hr>
31     <input type="button" value="根据编号,隐藏" id="btn3"><br>
32     <input type="button" value="根据编号,显示" id="btn4">
33 </body>

2、show() 和 hide() 方法还可以带有一个speed 参数,该参数可取三种预定义的字符串“slow”, “normal”, “fast”或表示动画时长的毫秒数。

  show() 和 hide() 方法会同时修改页面元素的高度、宽度和不透明度来实现效果。

 1 <script type="text/javascript">
 2         //定义一个标志位
 3         $(function () {
 4             var bol = true;//true:显示;false:隐藏
 5             //给按钮注册一个单击事件
 6             $("input[type = button]").click(function () {
 7                 //判断
 8                 if(bol){
 9                     //隐藏div
10                     $("div").hide("fast");
11                     //修改标志位
12                     bol = false;
13                 }else{
14                     //显示div
15                     $("div").show("slow");
16                     //修改标志位
17                     bol = true;
18                 }
19             });
20         });
21 </script>
22 <body>
23     <input type="button" value="show/hide"/>
24     <div>
25         我是div的<span>子元素</span><br>
26         我是div的<span>子元素</span><br>
27         我是div的<span>子元素</span><br>
28         我是div的<span>子元素</span><br>
29         我是div的<span>子元素</span><br>
30         我是div的<span>子元素</span><br>
31         我是div的<span>子元素</span><br>
32         我是div的<span>子元素</span><br>
33         我是div的<span>子元素</span><br>
34         我是div的<span>子元素</span><br>
35     </div>
36     <div>
37         <select multiple="multiple">
38         <option>项目1</option>
39         <option>项目2</option>
40         <option>项目3</option>
41         <option>项目4</option>
42         <option>项目5</option>
43         <option>项目6</option>
44         <option>项目7</option>
45         </select>
46     </div>
47     <input type="text" value="文本框">
48 </body>

3、淡入淡出:fadeIn(speed) 和 fadeOut(speed) 方法。

 1 <script type="text/javascript">
 2         //定义一个标志位
 3         $(function () {
 4             var bol = true;//true:显示;false:隐藏
 5             //只修改不透明度
 6             //给按钮注册一个单击事件
 7             $("input[type = button]").click(function () {
 8                 //判断
 9                 if(bol){
10                     //隐藏div
11                     $("div").fadeOut(3000);
12                     //修改标志位
13                     bol = false;
14                 }else{
15                     //显示div
16                     $("div").fadeIn(3000);
17                     //修改标志位
18                     bol = true;
19                 }
20             });
21         });
22 </script>
23 <body>
24     <input type="button" value="show/hide"/>
25     <div>
26         我是div的<span>子元素</span><br>
27         我是div的<span>子元素</span><br>
28         我是div的<span>子元素</span><br>
29         我是div的<span>子元素</span><br>
30         我是div的<span>子元素</span><br>
31         我是div的<span>子元素</span><br>
32         我是div的<span>子元素</span><br>
33         我是div的<span>子元素</span><br>
34         我是div的<span>子元素</span><br>
35         我是div的<span>子元素</span><br>
36     </div>
37     <div>
38         <select multiple="multiple">
39         <option>项目1</option>
40         <option>项目2</option>
41         <option>项目3</option>
42         <option>项目4</option>
43         <option>项目5</option>
44         <option>项目6</option>
45         <option>项目7</option>
46         </select>
47     </div>
48     <input type="text" value="文本框">
49 </body>

4、滑入滑出:slideDown() 和 slideUp()方法。

 1 <script type="text/javascript">
 2         //定义一个标志位
 3         $(function () {
 4             var bol = true;//true:显示;false:隐藏
 5             //只修改高度
 6             //给按钮注册一个单击事件
 7             $("input[type = button]").click(function () {
 8                 //判断
 9                 if(bol){
10                     //隐藏div
11                     $("div").slideUp(3000);
12                     //修改标志位
13                     bol = false;
14                 }else{
15                     //显示div
16                     $("div").slideDown(3000);
17                     //修改标志位
18                     bol = true;
19                 }
20             });
21         });
22 </script>
23 <body>
24     <input type="button" value="show/hide"/>
25     <div>
26         我是div的<span>子元素</span><br>
27         我是div的<span>子元素</span><br>
28         我是div的<span>子元素</span><br>
29         我是div的<span>子元素</span><br>
30         我是div的<span>子元素</span><br>
31         我是div的<span>子元素</span><br>
32         我是div的<span>子元素</span><br>
33         我是div的<span>子元素</span><br>
34         我是div的<span>子元素</span><br>
35         我是div的<span>子元素</span><br>
36     </div>
37     <div>
38         <select multiple="multiple">
39         <option>项目1</option>
40         <option>项目2</option>
41         <option>项目3</option>
42         <option>项目4</option>
43         <option>项目5</option>
44         <option>项目6</option>
45         <option>项目7</option>
46         </select>
47     </div>
48     <input type="text" value="文本框">
49 </body>

七、JavaScript中的其他辅助方法

  • $.parseJSON(“”) //接受一个JSON字符串,返回解析后的对象
  • $.parseXML(“”) //解析xml字符串,返回Documen对象
  • $.trim(“”) //去掉字符串前后的空格
  • $(“form”).serialize() // 将表单数据序列化为字符串
 1 <script type="text/javascript">
 2         $(function () {
 3             //给注册按钮注册一个单击事件
 4             $("input[type = button]").click(function () {
 5                 //获取表单数据
 6                 //获取账号
 7                 var account = $("input[nme = account]").val();
 8                 //获取用户名 trim:去掉前后空格
 9                 var userName = $.trim($("input[name = userName]").val());
10                 //获取性别
11                 var gender = $("input[name = gender]").val();
12                 //获取密码
13                 var pwd = $("input[name = pwd]").val();
14                 //获取确认密码
15                 var confirm = $("input[name = confirm]").val();
16                 //将注册信息,反映json字符串
17                 var jsn ='{"account":"' + account + '","userName":"' + userName + '","gender":"' + gender + '","pwd":"' + pwd + '","confirm":"' + confirm + '"}';
18                 //方法一
19                 console.log($.parseJSON(jsn));
20                 //方法二
21                 console.log(eval("(" + jsn + ")"));
22                 //将表单数据序列化(控制台中的空格会变为加号)
23                 console.log($("form").serialize());
24             });
25         });
26 </script>
27 <body>
28     <h2>注册</h2>
29     <form action="${pageContext.request.contextPath}/userServlet?flag=register" method="post" enctype="multipart/form-data" οnsubmit="return chk()">
30         账号:<input type="text" name="account"/><br>
31         用户名:<input type="text" name="userName"/><br>
32         性别:<input type="radio" name="gender" value="1">男<input type="radio" name="gender" value="0">女<br>
33         密码:<input type="password" name="pwd"/><br>
34         确认密码:<input type="password" name="confirm"/><br>
35         <input type="button" value="注册">
36     </form>
37 </body>

 

             

转载于:https://www.cnblogs.com/mataoblogs/p/10746128.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值