JavaScript和Ajax部分(4)
31、 什么是jQuery选择器
1)jQuery选择器继承了CSS与Path语言的部分语法,允许通过标签名、属性名或内容对DOM元素进行快速、准确的选择,而不必担心浏览器的兼容性,通过jQuery选择器对页面的元素的精准定位,才能完成元素属性和行为的处理。
选择器是jQuery的根基,在jQuery中,对象的事件处理,遍历DOM和Ajax操作都依赖于选择器
2)jQuery选择器的优点:
简洁的写法
完善的事件处理机制
支持CSS1到CSS3选择器
32、 jQuery选择器的种类
1).基本选择器
基本选择器是jQuery中最常见的选择器,也是最简单的选择器,它通过元素id,class和标记名来查找DOM元素
2).层次选择器
如果想通过DOM元素之间的层次关系来获取特定元素,就需要使用层次选择器
3).过滤器选择器
过滤选择器主要是通过特定的过滤规则来筛选出所需的DOM元素,该选择器都以“:”开头,过滤选择器又分以下几种
4).表单选择器
表单选择器主要是通过所选择的表单元素进行过滤
5).属性选择器
属性过滤选择器的过滤规则是通过元素的属性来获取相应的元素
7).内容过滤器选择器
内容过滤选择器的过滤规则主要体现在它所包含的子元素和和文本内容上
8).可见性过滤选择器
可见性过滤选择器是根据元素的可见和不可见状态来选择相应的元素
33、 jQuery中的选择器 和 css中的选择器有区别吗?
答:jQuery选择器支持CSS里的选择器,jQuery选择器可用来添加样式和添加相应的为CSS 中的选择器是只能添加相应的样式。
34、 siblings() 方法 和 $('prev~div')选择器是一样的嘛?
答: $('prev~div') 只能选择'#prev'元素后面的同辈<div>元素而siblings()方法与前后的位置无关,只要是同辈节点就都能匹配。
35、 jQuery中的hover()和toggle()有什么区别?
答: hover()和toggle()都是jQuery中两个合成事件。
hover()方法用于模拟光标悬停事件。
toggle()方法是连续点击事件。
36、 $("#msg").text()和 $("#msg").text("<b>new content</b>")有什么区别?
$("#msg").html()及$("#msg").html("<b>new content</b>")的区别呢?
答:$("#msg").text() 是 返回id为msg的元素节点的文本内容
$("#msg").text("<b>new content</b>"); 是 将“<b>new content</b>” 作为普通文本串写入id为msg的元素节点内容中,页面直接显示“<b>new content</b>”,text()方法对HTML和XML文档都有效
$("#msg").html()则是取得id为msg的元素节点的html内容。这个函数不能用于XML文档。但可以用于XHTML文档
$("#msg").html("<b>new content</b>"),是将“<b>new content</b>”作为HTML内容写入id为msg的元素节点内容中,页面直接显示粗体的“new content”内容
37、 Jquery对象和dom对象的区别
Jquery对象才能调用jquery中特有的方法。例如jqueryObj.html()、jqueryObj.val()等方法,而不能使用dom对象特有的属性和方法,例如domObj.value,domObj.innerHTML等。
Jquery对象可以和dom对象相互转化
38、 jQuery对象和dom对象是怎样转换的?
1.jQuery转DOM对象:
1)jQuery 对象是一个数组对象,可以通过[index]的方式得到相应的DOM对象,例如页面有个id为myDiv的DIV对象,可以使用var domObj = $(“#myDiv”)[0]这种方式来获取该DIV对应的dom对象
2)通过get(index)去得到相应的DOM对象,var domObj = $(“#myDiv”).get(0);
2.DOM对象转jQuery对象:
直接使用$(DOM对象)来转换,示例代码:
var domObj = document.getElementById(“myDiv”);
var jQueryObj = $(domObj);
$()就相当于一个jquery对象的构造函数
39、 你是如何使用jQuery中的ajax的?
答: 如果是一些常规的ajax程序的话,使用$.load(),$.get(),$.post(),就可以搞定了,
一般我会使用的是$.get() 方法。
如果需要设定beforeSend(提交前回调函数),error(失败后处理),success(成功后处理)
及complete(请求完成后处理)回调函数等,这个时候我会使用$.ajax()
40、 jQuery中$.get()提交和$.post()提交有区别吗?
1)$.get() 方法使用GET方法来进行异步请求的,$.post() 方法使用POST方法来进行异步请求的。
2)get请求会将参数跟在URL后进行传递,而POST请求则是作为HTTP消息的实体正文内容发送给Web服务器的,这种传递是对用户不可见的。
3)get方式传输的数据大小不能超过2KB 而POST要大的多
4)GET 方式请求的数据会被浏览器缓存起来,因此有安全问题。