jQuery初探 jQuery选取和操纵元素的特点

时间:2022-07-12 18:24:08

jQuery初探 jQuery选取和操纵元素的特点

JavaScript选取元素

  先来看看不用jQuery的时候我们是怎么处理元素选取的. 

  JavaScript选取元素的时候,可以根据id获取元素,当id不存在的时候,结果为null,并且console会报脚本执行错误.

  所以一般的做法是先用一个if判断该元素存在.

  比如:

<body>
<a>click me</a>
<script type="text/javascript"> // document.getElementById("someId").style.color = "red";//if id does not exist,report error in console. if (document.getElementById("hello")) {//ensure it's neither null nor undefined.
document.getElementById("hello").style.color = "red";
}
</script> </body>

jQuery选取操纵元素

  jQuery获取元素用的是$()运算符,比如获取某个id的对象用:$(“#idValue”).

  不论该id的元素存在与否,都会返回一个jQuery对象(object).

  这一点和直接用JavaScript获取DOM对象是完全不一样的.

  一般情况下$()获取的是所有满足条件的元素,即得到的这个jQuery对象有一个属性length,表示元素的个数,可能为0,表示没有获取到元素.比如当要获取的目标id不存在时,该值为0.

  id选择器是一个比较特殊的选择器,它只获取满足指定id的单个元素.如果id有多个,只返回第一个元素.

  

  如果id不存在时,虽然可以获取jQuery对象,但是将jQuery对象转换为DOM对象(用[0]或者get(0)),将会得到一个undifined.

  之后对这个DOM对象的任何属性操作都会报错,因为undefined不存在任何属性.

//jQuery
alert($("#hello"));//object //method1: convert jQuery object to DOM object
alert($("#hello")[0]);//undefined
$("#hello")[0].style.color = "red";//report error here!

  既然转换成DOM元素不太好用,那么我们就放弃转换,直接操纵jQuery元素.

  比如:

$("#hello").css("color","red");

  这样,虽然对应id的元素还是不存在,样式修改也没有生效,但是页面不会报任何错误,因为jQuery会将其忽略掉.

  如果id存在,则该样式会生效.

  jQuery对象中的大多数方法同时支持读操作写操作.

  下面我们给链接加上我们想要的id.

<body>
<a id="hello">click me</a>
<script type="text/javascript">
//jQuery
alert($("#hello").length);//show DOM elements count.
$("#hello").css("color","red");//write action
alert($("#hello").css("color"));//read action
</script>
</body>

  这个例子中hello是一个存在的id,首先用jQuery对象的css()方法的写操作赋予它一个颜色值,后来用读操作读出这个颜色值,弹窗显示出来.

  jQuery中的大多数方法都是用同一个名字,同时支持相对应的读操作和写操作.

  一般读操作是一个参数,写操作是两个参数.

总结: jQuery语法

  jQuery 语法是为 HTML 元素的选取编制的,可以对元素执行某些操作.

  基础语法是:$(selector).action()

  $符号定义 jQuery.

  选择符(selector)“查询”和“查找” HTML 元素.

  jQuery 的 action() 执行对元素的读写操作.

  关于jQuery选择器的内容这里先不详细介绍.本文只用了其中的id选择器作示例.

参考资料

  圣思园张龙老师JavaWeb视频教程66.

  HTML参考手册:http://www.w3school.com.cn/tags/index.asp

  jQuery语法:http://www.w3school.com.cn/jquery/jquery_syntax.asp