-
$(document).ready()
当dom完全加载(例如html被完全解析dom树构建完成时),jquery允许你执行代码,使用此函数可以做到表现与逻辑分离,并且所有的浏览器都支持,可以放到页面的任何位置。
-
$node.html()和$node.text()的区别
$node.html()用于获取/修改元素的innerHtml的参数值。
$node.text()用于获取/修改元素的innerText的参数值。
两者都是将字符串放入html的标签中的一个函数,但是innerHtml它可以解析html标签。例如,你放入一个<a>史蒂夫</a>如果在div中它里面会出现一个带下划线的a元素,但是innerText只支持普通字符串。
对于<div class='show'><b><i>write less do more</i></b></div>
如果我们用var Html=$('.show').html()
取的话结果是<b><i>write less do more</i></b>
,如果我们用var Html=$('.show b i ').html()
取的话结果是write less do more,而text没有第一种情况,如果我们用 var Text=$('.show').text()
;取的话,结果是write less do more。
-
$.extend 的作用和用法
用法一:合并settings和options修改并返回settings
var settings={validate: false,limit: 2,name:'foo'};
var options={validate: true,name:'bar'}
$.extend(settings,options);
结果:settings=={limit: 2,name:'foo',validate: true,name:'bar'}
用法二:合并defaults和options不修改defaults.
var empty={};
var defaults={validate: false,limit:5,name:'foo'};
var options={validate: true,name:'bar'};
var settings=$.extend(empty,dafaults,optionos);
settings=={validate: true,limit:5,name:'bar'}
empty=={validate: true,limit: 5,name:'bar'}
-
jQuery 中 data 函数的作用
在元素上存放或读取数据,返回jquery对象。
当参数只有一个key时候为读取该jquery对象对应的dom中存储的key对应的值。当参数为两个的时候,为向该jquery对象对应的dom中存储key-value键值对的数据。
实例一:在一个div上存储数据
html代码:
<div></div>
jquery代码:
$('div').data('blah')//undefind
$('div').data('blah','hello')//blah设置为hello
$('div').data('blah');//hello
实例二:
html代码:
<div></div>
jquery代码:
$('div').data('test',{first:16,last:'pizza!'})
$('div').dat('test').first//16;
$('div').data('test').last//pizza!
实例三:
在html5规范中div中读取预存的data-[key]值
html代码:
<div data-test='this is test'></div>
jquery代码:
$('div').data('test');//this is test!;
-
jQuery 的链式调用
$('#myphoto').css('border','solid 2px #ff0000').attr('alt','good')
对于一个jquery对象先调用了css()函数修改样式,然后使用attr()函数修改属性,这种调用方式像链一样,所以称为链式操作。可以让代码简洁。
除了获取某些数据的函数,比如获取属性值'attr(name)',获取集合大小‘size()’这些函数是明显返回数据的,除了这些函数之外的jquery函数都可以用于链式操作,比如设置属性‘attr(name.value)’
-
写出以下功能对应的 jQuery 方法
- 给元素 $node 添加 class active,给元素 $noed 删除 class active
$node.addClass('active') $node.removeClass('active')
- 展示元素$node, 隐藏元素$node
$node.show() $node.hide()
- 获取元素$node 的 属性: id、src、title, 修改以上属性
$node.attr('id'),$node.attr('src'),$node.attr('title') $node.attr('id','hello'),$node.attr('src','http://baidu.com'),$node.attr('title','picture')
- 给$node 添加自定义属性data-src
$node('data-src',' ')
- 在$ct 内部最开头添加元素$node
$ct.prepend('$node')
- 在$ct 内部最末尾添加元素$node
$ct.append('$node')
- 删除$node
$node.remove()
- 把$ct里内容清空
$ct.empty()
- 在$ct 里设置 html <div class="btn"></div>
$ct.html('<div class="btn"></div>')
- 获取、设置$node 的宽度、高度(分别不包括内边距、包括内边距、包括边框、包括外边距)
无参数是获取,有参数是设置
width()//只包括内容
height//只包括内容
innerWidth()//width+padding
innerHeight()//height+padding
outerWidth()//width+border+padding
outerHeight()//height+border+padding
outerWidth(true)//padding+margin+border+width
outerWidth('100px',true)//设置
outerHeight(true)//height+padding+margin+border
- 获取窗口滚动条垂直滚动距离
$(window).scrollTop();
- 获取$node 到根节点水平、垂直偏移距离
$node.offset()
- 修改$node 的样式,字体颜色设置红色,字体大小设置14px
$node.css({'color': 'red','font-size':'14px'})
- 遍历节点,把每个节点里面的文本内容重复一遍
$('ul li').each(function(index,node){
var str=$(node).text();
$(node).text(str+str);
});
- 从$ct 里查找 class 为 .item的子元素
$ct.find('.item')
- 获取$ct 里面的所有孩子
$ct.children()
- 对于$node,向上找到 class 为'.ct'的父亲,在从该父亲找到'.panel'的孩子
$node.parent('.ct').find('.panel')
- 获取选择元素的数量
$node.length
- 获取当前元素在兄弟中的排行
$node.index()
-
用jquery完成以下题目
- 当点击$btn 时,让 $btn 的背景色变为红色再变为蓝色
<head>
<script src="//code.jquery.com/jquery-2.1.1.min.js"></script>
<meta charset="utf-8">
<title>JS Bin</title>
<style>
.btn{
width: 50px;
height: 40px;
border: 1px solid red
}
</style>
</head>
<body>
<div class='btn'>123</div>
</body
$('.btn').on('click',function(){
$('.btn').css({background:'red'});
setTimeout(function(){
$('.btn').css('background','blue');
},1000);
});
- 当窗口滚动时,获取垂直滚动距离
$(document).on("scroll",function(){
$(this).scrollTop();
});
- 当鼠标放置到$div 上,把$div 背景色改为红色,移出鼠标背景色变为白色
$('.btn').on('mouseenter',function(){
$(this).css('background','red');
});
$('.btn').on('mouseleave',function(){
$(this).css('background','white');
});
- 当鼠标激活 input 输入框时让输入框边框变为蓝色,当输入框内容改变时把输入框里的文字小写变为大写,当输入框失去焦点时去掉边框蓝色,控制台展示输入框里的文字
$('input').on('focus',function(){
$(this).css('border','blue');
});
$('input').on('change',function(){
$(this).val($(this).val().toUpperCase());
});
$('input').on('blur',function(){
$(this).css('border','');
console.log($(this).val());
});
- 选择 select 后,获取用户选择的内容
<select name="" id="select">
<option value="beijing">beijing</option>
<option value="shanghai">shanghai</option>
<option value="hangzhou">hangzhou</option>
</select>
$('#select').on('change',function(){
$(this).find('option:selected').text();
});
代码