JQuery(JavaScript框架)

页面加载函数

    <script>
        // JS页面加载函数, 只允许一个, 多个的话会被覆盖
        onload = function() {
            alert("A");
        }
        onload = function() {
            alert("AA");
        }
        // JQ页面加载函数, 允许有多个, 按照顺序执行
        $(function() {
            alert("B");
        });
        $(function() {
            alert("BB");
        });
    </script>

JQ和JS对象使用上的区别

    <script>
        $(function() {
            // 通过JS给div1设置内容
            var div1 = document.getElementById("div1");
            div1.innerText = "JS设置的新内容";
            // 通过JQ给div2设置内容
            // JQ使用选择器来取代 getElementxxx
            $("#div2").text("JQ设置的新内容");

            // 结论: JS对象不能使用JQ的函数, JQ对象也不能使用JS的函数/属性
            // JS -> JQ  掌握
            $(div1).text("JQ给div1设置的新内容");
            // JQ对象, 能不能使用 JS 的属性 innerText
            // JQ -> JS  了解
            $("#div2").get(0).innerText = "JS给div2设置的新内容";
        });
    </script>

选择器

  • 基本选择器
		<script>
			$(function() {
				/*document.getElementById("btn1").onclick = function() {
					ele.style.backgroundColor = "pink";
				}*/
				// 点击btn1, 让id=one的元素, 样式背景颜色设置为粉色
				// 选择btn1, 添加onclick事件
				$("#btn1").click(function() {
					// 让id=one的元素
					// 1.id选择器
					$("#one").css("background-color", "pink");
				});
				// 2.类选择器
				$("#btn2").click(function() {
					// var arr = document.getElementsByClassName(".mini");
					// JQ中选择器选择出多个元素, 内部自带迭代器
					$(".mini").css("background-color", "pink");
				});
				// 3.元素选择器
				$("#btn3").click(function() {
					$("div").css("background-color", "pink");
				});
				// 4.所有元素
				$("#btn4").click(function() {
					$("*").css("background-color", "pink");
				});
				// 5.组合选择器
				$("#btn5").click(function() {
					$("#two, .mini").css("background-color", "pink");
				});
			});
		</script>
  • 层级选择器
		<script>
			$(function() {
				// 1.所有的后代元素
				$("#btn1").click(function() {
					$("body div").css("background-color", "pink");
				});
				// 2.所有的子代元素
				$("#btn2").click(function() {
					$("body > div").css("background-color", "pink");
				});
				// 3.下一个兄弟元素
				$("#btn3").click(function() {
					$("#one + div").css("background-color", "pink");
				});
				// 4.所有兄弟元素
				$("#btn4").click(function() {
					$("#one ~ div").css("background-color", "pink");
				});
			});
		</script>
  • 基本过滤选择器
		<script>
			$(function() {
				// body中的第一个div元素
				$("#btn1").click(function() {
					$("body div:first").css("background-color", "pink");
				});
				// body中的最后一个div元素
				$("#btn2").click(function() {
					$("body div:last").css("background-color", "pink");
				});
				// body中的奇数的div
				$("#btn3").click(function() {
					$("body div:odd").css("background-color", "pink");
				});
				// body中的偶数的div
				$("#btn4").click(function() {
					$("body div:even").css("background-color", "pink");
				});
			})
		</script>
  • 属性选择器
		<script>
			$(function() {
				// 选择有id属性的div
				$("#btn1").click(function () {
					$("div[id]").css("background-color","pink");
				});
                // 选择有id属性的值为two的div
				$("#btn2").click(function () {
					$("div[id='two']").css("background-color","pink");
				});
			})
		</script>
  • 表单选择器
		<script>
			$(function () {
				// 选择form中所有input元素
				$("#btn1").click(function () {
					$(":input").css("background-color","pink");
				});
				// 选择form中文本框
				$("#btn2").click(function () {
					$(":text").css("background-color","pink");
				});
			});
		</script>

文本内容的设置

  • html()
  • text()
  • val()
<script>
    $(function() {
        // 获得p标签中的标签内容q
        var str = $("#p1").html();
        // 设置p标签内容 innerHTML
        $("#p1").html('<font color="red">JQ的html方法添加的标签内容</font>');

        // 获得div标签中的文本内容 
        var strDiv = $("#div1").text();
        // 设置div标签中的文本内容 innerText
        $("#div1").text('<font color="red">JQ的text方法添加的文本内容</font>');

        // 输入框中的内容, value
        var val = $("input").val();
        // 设置输入框中的内容
        $("input").val("JQ设置input的内容");
    });
</script>

显示效果

  • show()、hide()、toggle()
  • slideDown()、slideUp()、slideToggle()
  • fadeIn()、fadeOut()、fadeToggle()

属性设置

  • attr(“属性名”) — 获得属性对应的值
    attr(“属性名”, “值”) — 设置属性对应的值
    – attribute 自定义属性,html不支持的属性,例:color

  • prop(“属性名”) — 获得属性对应的值
    prop(“属性名”, “值”) — 设置属性的值
    — property 固有属性, html本身支持的属性 例:href、src、checked

  • 添加/删除class属性
    addClass(className) — 添加完的class可以直接使用样式表
    removeClass(className)

JQuery的循环

    <script>
        $(function() {
            var arr = ["杭州","宁波",'温州','湖州','台州'];
            // jquery数组.each(callback)
            $("div").each(function(i) {
                console.log(i); // 循环的下标
                console.log(this); // 每一个元素 this 属于JS对象
            });
            
            // JQ的全局函数
            $.each(arr, function(i, n) {
                console.log(i); // 循环的下标
                console.log(n); // 取出来的每一个元素
            })
        })
    </script>

文档操作

  • append()
  • prepend()
  • before()
  • after()
    <script>
        $(function (){
            var $op = $("<option>芒果</option>");
            // 将芒果加到梨后面
            $("select").append($op);
            // 将芒果加到苹果前面
            $("select").prepend($op);

            // 将芒果加到柿子后面
            $("option:eq(1)").after($op);
            // 将芒果加到柿子前面
            $("option:eq(1)").before($op);
            $op.insertBefore($("option:eq(1)"));
            // 清除所有子元素  innerHTML = "";
            $("select").empty();
        })
    </script>

<body>
    <select>
        <option>苹果</option>
        <option>柿子</option>
        <option></option>
    </select>
</body>

案例一:用JQuery实现定时弹广告(样式调整、效果设置)

    <script>
        $(function() {
            setTimeout("showAd()", 2000);
        });
        function showAd() {
            $("#ad").css("display" , "block");
            // JQ中的显示函数
            // 设置效果
            // $("#ad").show();
            $("#ad").slideDown("slow", "swing");
            // $("#ad").fadeIn("slow");
            // $("#ad").fadeToggle("slow");
            setTimeout("hideAd()", 2000);
        }
        function hideAd() {
            $("#ad").css("display" , "none");
            // JQ中的关闭函数
            // 设置效果
            // $("#ad").hide();
            $("#ad").slideUp();
            // $("#ad").fadeOut("slow");
            // $("#ad").fadeToggle("slow");
        }
    </script>

案例二:使用jQuery实现表格隔行变色(选择器使用、样式调整)

    <script>
        $(function() {
            /*$("tbody tr:odd").css("background-color", "red");
            $("tbody tr:even").css("background-color", "yellow");*/
            // 不直接修改样式, 使用现有css样式表, 添加class属性
            $("tbody tr:odd").addClass("odd");
            $("tbody tr:even").addClass("even");
            // 选择器中自带迭代, 不需要手动循环
            $("tbody tr").mouseover(function() {
                // 先保留之前的颜色
                // this.setAttribute("color", this.style.backgroundColor);
                $(this).attr("color", $(this).css("background-color"));
                $(this).css("background-color", "white");
            });
            $("tbody tr").mouseout(function() {
                // 取出之前保留的颜色, 设置颜色
                // var color = this.getAttribute("color");
                var color = $(this).attr("color");
                $(this).css("background-color", color);
            });
        });
    </script>

案例三:使用jQuery实现全选或全不选(属性设置)

    <script>
        $(function() {
            $("#selectAll").click(function() {
                // 1.获得全选按钮的选中状态
                // var flag = this.checked;
                var flag = $(this).prop("checked");

                // 2.获得其他所有的checkbox
                $("input").prop("checked", flag);
            });
        });
    </script>

案例四:使用jQuery实现省市二级联动(jQuery的循环)

    <script>
        // 定义省份对应的城市列表 -- 真正开发时是从数据库中获取的
        var cities = [
            ["直辖市"],
            ["杭州","宁波",'温州','湖州','台州'],
            ['济南','青岛','威海','烟台'],
            ['南昌','上饶','宜春']
        ];
        $(function() {
            $("#provinceSelect").change(function() {
                // 获得当前选中的省份,下拉列表的值 - 浙江
                // 获得浙江对应的城市列表 - 数组
                var citys = cities[$(this).val()];
                // 清空原来的select内容, 保留 <option>--- 请选择城市 ---</option>
                $("#citySelect").html("<option>--- 请选择城市 ---</option>");
                // 为每一个城市创建一个选项 option标签
                $.each(citys, function(i, n) {
                    // 创建option标签: <option></option>
                    var option = document.createElement("option");
                    // 设置标签体: <option>杭州</option>
                    $(option).text(n);
                    // 并且将这个选项添加到城市下拉列表中 select
                    // $("#citySelect").append(option);
                    $(option).appendTo($("#citySelect"));
                });
            });
        })
    </script>

<body>
    <select id="provinceSelect">
        <option>--- 请选择省份 ---</option>
        <option value="0">北京</option>
        <option value="1">浙江</option>
        <option value="2">山东</option>
        <option value="3">江西</option>
    </select>
    <select id="citySelect">
        <option>--- 请选择城市 ---</option>
    </select>
</body>

案例五:使用jQuery实现下拉列表左右选择(选择器使用、文档操作)

		<script>
			$(function() {
				$("#selectOneToRight").click(function (){
					// 将左边选中的选项, 追加到右边列表中
					$("#left option:selected").appendTo($("#right"));
				});
				$("#selectOneToLeft").click(function (){
					// 将右边选中的选项, 追加到左边列表中
					$("#right option:selected").appendTo($("#left"));
				});
				// 将左边所有选项, 追加到右边列表中
				$("#selectAllToRight").click(function () {
					$("#right").append($("#left option"));
				});
				// 将右边所有选项, 追加到左边列表中
				$("#selectAllToLight").click(function () {
					$("#left").append($("#right option"));
				});
			})
		</script>

补充:

json — JS中的对象

  /**
  * 案例
  * {
  *   "param1":"value1",
  *   "param2":{},
  *   "param3":[{key:value,key:value},{key:value,key:value}]
  * } 
  */
  var person = {
    age: 30,
    name: {
      firstname: "小",
      lastname: "王"
    },
    child: [
      {
        name: "a",
        age: 5
      },
      {
        name: "b",
        age: 6
      }
    ]
    };
  console.log(person.child[1].name);

validation插件 - 在JQuery基础上开发的

  • 指定错误提示的位置:
   <label for="gender" class="error"></label>
  • validation插件使用
	<script>
		$(function() {
			// 校验表单  {}: json就是JS的对象
			$("#regForm").validate({
				// 校验的规则
				rules: {
					// 校验的输入框 input 对应的name
					username: {
						// 用户名校验的选项
						required: true,
						minlength: 6,
						maxlength: 18,
						checkUser: true // 自定义校验
					},
					password: {
						required: true
					},
					repassword: {
						required: true,
						equalTo: password
					},
					gender: {
						required: true
					}
				},
				messages: {
					username: {
						required: "用户名不能为空",
						minlength: '请输入6~18位',
						maxlength: '请输入6~18位',
						checkUser: '用户名已存在'
					},
					password: {
						required: "密码不能为空"
					},
					repassword: {
						required: "密码不能为空",
						equalTo: "两次密码不一致"
					},
					gender: {
						required: "必须选择性别"
					}
				}
			});
		})
	</script>
  • 自定义校验
$(function() {
	// 校验 用户名是否已经存在
	$.validator.addMethod("checkUser",
			// function 返回false, 校验不通过
			// 返回true ,校验通过
			function (value, element, params) {
				// value: 输入框内容
				// element: 输入框标签
				// params: 校验参数
				var flag = false;
				$.ajax({
					url: "/web_war_exploded/CheckUserServlet",
					data: {username: value},
					success: function (data) {
						//data.flag -> true -> 存在
						//data.flag -> false -> 不存在
						flag = !data.flag;
					},
					dataType: "json",
					async: false // 需要 同步
				});
				// 存在, 返回false
				// 不存在, 返回true
				return flag;
			});
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值