jQuery模拟题

1.$符的作用

a.将选择器包裹成jQuery的dom对象
b.文档就绪处理程序,$(document).ready(…)
c.实用工具函数的前缀,如$.trim
d.可转让给其他库,利用noConflict还原jQuery定义
e.创建DOM元素

$("<p>内容</p>");

f.扩展jQuery库

2. 如何找到所有HTMLselect标签的选中项

$('[name=selectname] :selected')

3.$(this)和this关键字在jQuery中有何不同

jQuery中$(this)返回的是一个对象,它可以调用多个jQuery方法,如用text()获取文本,用val()获取值等。
而this代表当前元素,是JavaScript关键词的一个,表示上下文中的当前DOM元素。当用$包裹,就可以调用jQuery方法。

4.jquery的选择器

  • 基本选择器:#id,class,element,*;
  • 层次选择器:parent > child, prev + next, prev ~ siblings
  • 基本过滤器选择器::first, :last, :not, :even, :odd, :eq, :gt, :lt
  • 内容过滤器选择::contains, :empty, :has, :parent
  • 可见性过滤器选择器::hidden, :visible
  • 属性过滤器选择器:[attribute],[attribute=value],[attribute!=value],[attribute^=value],[attribute$=value],[attribute*=value]
  • 子元素过滤器选择器::nth-child,:first-child,:last-child,:only-child
  • 表单选择器::input,:text,:password,:radio,:checkbox,:submit等
  • 表单过滤选择器::enabled,:disabled,:checked,:selected

5.$(document).ready()方法和window.onload有什么区别

  • window.onload是在网页中所有的元素(包括元素的所有关联文件)完全加载到浏览器后才执行的
  • $(document).ready()方法可以在DOM载入就绪时就对其进行操纵,并调用执行绑定的函数

6.如何用jQuery禁用浏览器的前进后退按钮

 $(document).ready(function(){
	window.history.forward(1); //or window.history.forward(-1);
})

7.jQuery中的$.get()和$.post

相同点:都是异步请求的方式来获取服务端的数据;
不同点:
a.请求方式不同
b.参数传递方式不同:get的参数跟在url后面,post请求则是作为HTTP消息的实体内容发送给Web服务器的,这种传递对用户不可见
c.数据传输大小不同:get传输的数据大小不能超过2KB,而post则大很多
d.安全问题:GET方式请求的数据会被浏览器缓存起来,因此有安全问题

8.一个简单的$.ajax()请求

$.ajax({
   url:"http://www.baidu.com",
   type:'POST',
   data:data,
   cache:true,
   headers:{},
   beforeSend:function(){},
   success:function(){},
   error:function(){},
   complete:function(){}
});

9.jQuery事件委托方法,bind、live、delegate、on之间的区别

bind(jquery1.3之前)
定义用法:主要用于给选择到的元素上绑定特定事件类型的监听函数:
语法:bind(type,[data],function(eventObject));
特点:

  • 适用于页面元素静态绑定。只能给调用它的时候已经存在的元素绑定事件,不能给未来新增的元素绑定事件
  • 当页面加载完成,才能进行bind(),否则可能产生效率问题
$("#member li a").bind("click",function(e){});

live(jQuery1.3之后)
定义用法:主要用于给选择到的元素上绑定特定事件类型的监听函数;
语法:live(type,[data],fn)
特点:

  • live方法并没有将监听器绑定到自己this身上,而是绑定到了this.context上了
  • live正是利用了事件委托机制来完成事件的监听处理,把节点的处理委托给了document,新添加的元素不必再绑定一次监听器
  • 使用live()方法但却只能放在直接选择的元素后面,不能在层级比较深,连缀的DOM遍历方法后面使用,即$(“ul”).live可以,但$(“body”).find(“ul”).live()不行

delegate(jquery 1.4.2中引入)
定义和用法:将监听事件绑定在就近的父级元素上
语法:delegate(selector,type,[data],fn)
特点:

  • 选择就近的父级元素,因为事件可以更快的冒泡上去,能够在第一时间进行处理
  • 更精确的小范围使用事件代理,性能优于live(),可以用在动态添加的元素上。
$("#info_table").delegate("td","click",function(){});
$("table").find("#info").delegate("td","click",function(){})

on (jquery1.7整合了之前的三种方式的新事件绑定机制)
定义用法:将监听事件绑定到指定元素上
语法:on(type,[selector],[data],fn)

$("#info_table").on("click","td",function(){}); 

on方法是当前jQuery推荐使用的事件绑定方法,附加只运行一次就删除函数的方法是one()
.bind(),.live(),.delegate(),.on()分别对应的相反事件为:.unbind(),.die(),.undelegate(),.off()

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值