jQuery习题的一些总结
1.在div元素中,包含了一个<span>元素,通过has选择器获取<div>元素中的<span>元素的语法是? 提示使用has
$("div:has(span)")
2.在三个<ul>元素中,分别添加多个<li>元素,通过jQuery中的子元素选择器,将这三个<ul>元素中的第一个 <li>元素隐藏,代码是? 提示使用first-child
$("li:first-child")hide()
3.在页面的表单中增加了多个<input>类型的复选框元素,其中有的处于选中状态,通过jQuery选择器,将这些 选中状态的元素隐藏,代码为?
$("form input:checked").hide();
4.如何获取列表框元素中被选中元素的的值,代码为:?
$("select option:selected").text()
5.使用attr方法,取消id号为test的复选框选中状态代码为:?
$("#test").attr("checked",false);切记这里的属性值不能加双引号
find()的用法?
alert($("#TrackID").find("option:selected").text());
表单元素里获取值用对象.val(); 其他标签里用text或html;
jQuery追加文本的方法.append();
键盘敲入的字符接受的时候是在keyUp事件之后,其他keyDown,keyPress事件如果追加文本都先存在缓存区里!
DOM 0级注册方式 click DOM 2级注册方式 bind live
用click和bind方式不能给后来动态生成的对象绑定原有的事件,不用克隆true的方式时就用live方法!
appendTo():如果对象原本就存在的,如$("li:first").appendTo("ul")那么ul里的li数量不会变,但是会把第一个li和第二个li调换位置 <ul> <li id="one">aa</li> <li id="two">bb</li> </ul>
如果对象是新添加的,那么$("<li>cc</li>").appendTo("ul")那么ul里的li数量会增加一个在最后。
如果想用第一种方法可以先克隆一下,如:$("li:first").clone(true).appendTo("ul")那么也会改变li的长度,true代表对象自身的事件也被复制过去了
透明度:
opacity 0完全透明 1不透明 0.5折中
$(function () {
$('dd').hover(function () {
$(this).animate({ opacity: "0.5" });
}, function () {
$(this).animate({ opacity: "1" });
})
})
jQuery如果在一个紧密事件里多次追加样式.addclass("样式"),不会覆盖掉原样式,如hover()事件里鼠标悬浮移开就会在标签里class=""
里以空格分离的形式多次在后面追加样式,所以如果多次用到,追加后在鼠标移开的事件里记得清楚样式。
jQuery可以同each()方法遍历元素集合:
$("button").click(function(){ $("li").each(function(){ alert($(this).text()) }); });
jQuery可用$.each遍历数组:
1:相当于key value
$.each(Array, function(i, value) {
this; //this指向当前元素
i; //i表示Array当前下标
value; //value表示Array当前元素
});
2:相当于下标
$.each(Array, function(i) {
this; //this指向当前元素
Arrayp[i] //Arrayp[i]指向当前元素
i; //i表示Array当前下标
3:直接什么都不用,this直接代替当前数组元素
var arr = [ "one", "two", "three", "four"];
$.each(arr, function(){
alert(this);
});