jquery基础

jquery

标签(空格分隔): jquery


  1. jQuery是一个JavaScript脚本库,不需要特别的安装,只需要我们在页面 标签内中,通过 script 标签引入 jQuery 库即可。代码如下:






2.




第一个简单的jQuery程序

div{
padding:8px 0px;
font-size:12px;
text-align:center;
border:solid 1px #888;
}



(document).ready(function() {("div").html("hello world!");
});





代码分析:
$(document).ready 的作用是等页面的文档(document)中的节点都加载完毕后,再执行后续的代码,因为我们在执行代码的时候,可能会依赖页面的某一个元素,我们要确保这个元素真正的的被加载完毕后才能正确的使用。

3.




<!-- 使用JS原生语法 -->
<script type="text/javascript">
    window.onload = function(){
        // 通过原生JS语法获取id为imooc1的元素p
        var p = document.getElementById('imooc1');
        // 将元素p在html中内容改变
        p.innerHTML = 'P1:您好!';
        // 将元素p的内容颜色改为红色
        p.style.color = 'red';  
    }
</script>

<!-- 使用jQuery语法 -->
<script type="text/javascript">
    $(document).ready(function() {
        /**
         * 通过jQuery语法获取id为imooc2的元素获得一个jQuery对象
         * 调用该对象的html()方法进行更改内容
         * 调用该对象的css()方法进行更改颜色样式
         */   
        var $p = $('#imooc2');
        $p.html('P2:您好!').css('color','red');
    });
</script>




代码解析:
jQuery对象与DOM对象是不一样的。通过原生DOM模型提供的document.getElementById(“imooc”) 方法获取的DOM元素就是一个DOM对象,再通过innerHTML与style属性处理文本与颜色。
通过('#imooc')方法会得到一个p的jQuery对象,$p是一个类数组对象。这个对象里面包含了DOM对象的信息,然后封装了很多操作方法,调用自己的方法html与css,得到的效果与标准的JavaScript处理结果是一致的。

通过标准的JavaScript操作DOM与jQuyer操作DOM的对比,我们不难发现:

通过jQuery方法包装后的对象,是一个类数组对象。它与DOM对象完全不同,唯一相似的是它们都能操作DOM。
通过jQuery处理DOM的操作,可以让开发者更专注业务逻辑的开发,而不需要我们具体知道哪个DOM节点有那些方法,也不需要关心不同浏览器的兼容性问题,我们通过jQuery提供的API进行开发,代码也会更加精短。

4.jQuery对象转化成DOM对象
jQuery库本质上还是JavaScript代码,它只是对JavaScript语言进行包装处理,为的是提供更好更方便快捷的DOM处理与开发中经常使用的功能。我们使用jQuery的同时也能混合JavaScript原生代码一起使用。在很多场景中,我们需要jQuery与DOM能够相互的转换,它们都是可以操作的DOM元素,jQuery是一个类数组对象,而DOM对象就是一个单独的DOM元素。
如何把jQuery对象转成DOM对象?

利用数组下标的方式读取到jQuery中的DOM对象

HTML代码

元素一
元素二
元素三

JavaScript代码

var div= (‘div’) //jQuery对象
var div = $div[0] //转化成DOM对象
div.style.color = ‘red’ //操作dom对象的属性
用jQuery找到所有的div元素(3个),因为jQuery对象也是一个数组结构,可以通过数组下标索引找到第一个div元素,通过返回的div对象,调用它的style属性修改第一个div元素的颜色。这里需要注意的一点是,数组的索引是从0开始的,也就是第一个元素下标是0

通过jQuery自带的get()方法

jQuery对象自身提供一个.get() 方法允许我们直接访问jQuery对象中相关的DOM节点,get方法中提供一个元素的索引:

var div= (‘div’) //jQuery对象
var div = $div.get(0) //通过get方法,转化成DOM对象
div.style.color = ‘red’ //操作dom对象的属性
其实我们翻开源码,看看就知道了,get方法就是利用的第一种方式处理的,只是包装成一个get让开发者更直接方便的使用。

5.DOM对象转化成jQuery对象
相比较jQuery转化成DOM,开发中更多的情况是把一个dom对象加工成jQuery对象。$(参数)是一个多功能的方法,通过传递不同的参数而产生不同的作用。

如果传递给 (DOM)DOMjQueryDOMjQuery (dom)方法将普通的dom对象加工成jQuery对象之后,我们就可以调用jQuery的方法了

HTML代码

元素一
元素二
元素三

JavaScript代码
var div = document.getElementsByTagName(‘div’); //dom对象
var div= (div); //jQuery对象
var first= div.first(); //找到第一个div元素
first.css(color,red);//getElementsByTagNamedivdom(3div) (div)方法转化成jQuery对象,通过调用jQuery对象中的first与css方法查找第一个元素并且改变其颜色。

6.jQuery选择器之id选择器
页面的任何操作都需要节点的支撑,开发者如何快速高效的找到指定的节点也是前端开发中的一个重点。jQuery提供了一系列的选择器帮助开发者达到这一目的,让开发者可以更少的处理复杂选择过程与性能优化,更多专注业务逻辑的编写。

jQuery几乎支持主流的css1~css3选择器的写法,我们从最简单的也是最常用的开始学起

id选择器:一个用来查找的ID,即元素的id属性

$( “#id” )
id选择器也是基本的选择器,jQuery内部使用JavaScript函数document.getElementById()来处理ID的获取。原生语法的支持总是非常高效的,所以在操作DOM的获取上,如果能采用id的话尽然考虑用这个选择器

值得注意:

id是唯一的,每个id值在一个页面中只能使用一次。如果多个元素分配了相同的id,将只匹配该id选择集合的第一个DOM元素。但这种行为不应该发生;有超过一个元素的页面使用相同的id是无效的。

7.jQuery选择器之类选择器
类选择器,顾名思义,通过class样式类名来获取节点

描述:

$( “.class” )
类选择器,相对id选择器来说,效率相对会低一点,但是优势就是可以多选

同样的jQuery在实现上,对于类选择器,如果浏览器支持,jQuery使用JavaScript的原生getElementsByClassName()函数来实现的

右边实现一个原生getElementsByClassName()函数的实现代码与jQuery实现代码的比较

我们不难发现:

jQuery除了选择上的简单,而且没有再次使用循环处理
不难想到$(“.imooc”).css()方法内部肯定是带了一个隐式的循环处理,所以使用jQuery选择节点,不仅仅只是选择上的简单,同时还增加很多关联的便利操作。

8.jQuery选择器之元素选择器
元素选择器:根据给定(html)标记名称选择所有的元素

描述:

(element)getElementsByTagName() ("p")和$(“div”)来获取p和div数组。

9.jQuery选择器之全选择器(*选择器)
在CSS中,经常会在第一行写下这样一段样式

  • {padding: 0; margin: 0;}
    通配符意味着给所有的元素设置默认的边距。jQuery中我们也可以通过传递选择器来选中文档页面中的元素

描述:

$( “*” )
抛开jQuery,如果要获取文档中所有的元素,通过document.getElementsByTagName()中传递”*”同样可以获取到

不难发现,id、class、tag都可以通过原生的方法获取到对应的节点,但是我们还需要考虑一个兼容性的问题,我这里顺便提及一下,比如:

IE会将注释节点实现为元素,所以在IE中调用getElementsByTagName里面会包含注释节点,这个通常是不应该的
getElementById的参数在IE8及较低的版本不区分大小写
IE7及较低的版本中,表单元素中,如果表单A的name属性名用了另一个元素B的ID名并且A在B之前,那么getElementById会选中A
IE8及较低的版本,浏览器不支持getElementsByClassName

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值