客户端网页编程09——Jquery

时间:2021-12-25 20:38:21

客户端网页编程09——Jquery


二级联动
个人理解:所谓框架就是别人把写好的功能封装成的源生代码,我们需要哪些功能就直接拿来用!
jquery:前端框架(对JavaScript原生代码的封装)jquery封装JavaScript原生代码:方法的封装
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<p id="p1">this is p</p>
<p class="p1">this is p</p>
<p class="p2 p3">this is p</p>
<p class="p2">this is p</p>
<script>
/*var op = document.getElementById("p1");
op.style.backgroundColor = "red";

var op1 = document.getElementsByClassName("p1")[0];
op1.style.backgroundColor = "orange";*/

function $(text){
//text文本进行拆分
var chooseArr = text.split(" ");
if(chooseArr.length==1){
//通过传入的符号确定要调用的方法
var ch = chooseArr[0].substr(0,1);
switch(ch){
case "#":return document.getElementById(chooseArr[0].substr(1));
case ".":return document.getElementsByClassName(chooseArr[0].substr(1));
default:return document.getElementsByTagName(chooseArr[0]);
}
}else{
//继续判断传入的元素个数
}
}

console.info($("#p1"));

console.info($(".p1"))
$(".p1")[0].style.backgroundColor = "red";
</script>
</body>
</html>
jquery与原生代码区别:jquery返回的对象(Object),原生代码返回获取的元素
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<script src="js/jQuery-2.2.2-min.js"></script>
<script>
/*原生js方法获取到p元素*/
/*window.onload = function(){
var op = document.getElementById("p1");
console.info(op);
}*/

/*通过jquery方式来实现的元素获取*/
/*$(document).ready(function(){
var op = $("#p1");
console.info(op);
});*/


$(function(){
var op = $("#p1");
console.info(op);
});



</script>
</head>
<body>
<p id="p1"></p>

</body>
</html>
选择器:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<style>

</style>

</head>
<body>
<p id="p1">this is p</p>
<p class="p1">this is p</p>
<div></div>
<input type="text" name="username"/>
<span name="username">this is span</span>

<ul id="ul1">
<li>新闻</li>
<li>体育</li>
<li>更多</li>
</ul>

<table border="1" id="mytable">
<tr>
<td>123</td>
<td>456</td>
</tr>
<tr>
<td>567</td>
<td>678</td>
</tr>
<tr>
<td>789</td>
<td>890</td>
</tr>
</table>
<script src="js/jQuery-2.2.2-min.js"></script>
<script>
/*获取到id*/
var op1 = $("#p1");
console.info(op1);

var jsop = document.getElementById("p1");
console.info(jsop);

/*根据class获取到元素*/
var op2 = $(".p1");
console.info(op2);

/*通过name属性*/
var oinp = $("[name=username]");
console.info(oinp);
oinp.css("background-color","red");

/*通过标签名字获取到元素*/
var odiv = $("div");
console.info(odiv);

/*选中元素的子元素*/
$("#ul1 li:first-child").css("color","red");

/*选中表格*/
$("#mytable tr:even").css("background-color","red");
$("#mytable tr:odd").css("background-color","pink");
</script>
</body>
</html>

属性:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<style>
.as{
color: red;
}
</style>
</head>
<body>
<p name="test" title="index-1">this is p</p>
<span id="span1">span <a href="">点我要死啊</a></span>
<ul id="ul1">
<li class="as">首页</li>
<li>伟业</li>
<li>下一页</li>
</ul>

<input type="text" name="username"/>
<input type="button" id="btn"/>
<script src="js/jQuery-2.2.2-min.js"></script>
<script>
/*var op = document.getElementsByName("test")[0];
/!*对象.属性 op["下标"]*!/
console.info(op.title);
console.info(op["title"]);*/

/*attr()一个参数获取属性值,两个参数这是属性值*/
var value = $("[name=test]").attr("title");
console.info(value);

$("[name=test]").attr("title","test1");

/*移除属性*/
$("[name=test]").removeAttr("title");

/*动态添加class属性*/
/*$("#span1").attr("class","as");*/
$("#span1").addClass("as");
/*class设置为“”removeAttr()直接移除属性;*/
$("#span1").removeClass("as");


/*addClass方法设置class属性,调用方法的时候可以传递一个函数,最后返回一个值*/
$("#ul1 li").addClass(function(){
var res = "index"+$(this).index();
return res;
});


/*toggleClass(),反选*/
$("#ul1 li").toggleClass("as");


/*var value = document.getElementById("ul1").innerHTML;

console.info(value);*/
/*html(),封装了js里面innerHTML属性*/
console.info($("#ul1").html());

$("#ul1").html("<li>123</li>");


/*text();获取到元素内部的文本内容*/
console.info($("#span1").text());

/*val()获取到文本框的值,js里面value属性*/
$("#btn").on("click",function(){
var value = $("input[name=username]").val();
console.info(value);
})



</script>
</body>
</html>

筛选
/*不推荐:jsjquery混合使用,混合使用很容易报错*/
console.info($("li")[0]);

console.info($("li").html());

/*获取到集合中指定下标的元素,0是第一个,-1是最后一个*/
console.info($("li").eq(-1));

/*first()*/
console.info($("li").first());

/*last()*/
console.info($("li").last())

/*hasClass()判断当前元素是否有指定class属性,jquery,获取到一个集合,取出集合中的所有内容,默认返回第一个元素的内容*/
var res = $("li").hasClass("li");

/*html();*/
$("li").addClass("as");
console.info(res);

/*each()循环取出内容*/
$("li").each(function(){
console.info($(this).html());
});

/*filter()从集合中筛选出符合指定条件的元素,返回的是对象*/
var odiv = $("div").filter(".div");
console.info(odiv);

/*has()包含:获取的元素内部的条件是否符合要求*/
//$("div").has(".span").css("background-color","red");

/*find():针对的是子类*/
//链式表达
$("div").find(".span").css("background-color","red");

/*is():用来判断释放满足指定条件*/
var boo =$(".span").parent().is(".box");
console.info(boo);

boo = $(".box").children().is(".span");
console.info(boo);