jquery之筛选

夙愿已清 提交于 2020-02-18 02:01:55

1.过滤

eq(index|-index)
eq与nth-child
eq索引从0开始,若为负数,代表倒序从最后一个开始
nth-child找的也是同级的某个元素,但是索引从1开始

console.log($("ul>li").eq(1));
console.log($("ul>li").eq(-1));
console.log($("ul>li:nth-child(1)"));

first() 获取第一个元素
last()

console.log($("ul>li").first());
console.log($("ul>li").last());

hasClass(class) 返回值是布尔类型

console.log($("ul>li").hasClass("myli"));  //返回true   false

filter(expr|obj|ele|fn)
参数写名称时要加 .或者 #

console.log($("ul>li").filter(".myli"));
//相当于遍历
console.log($("ul>li").filter(function (index, html) {
     console.log(index, html);
     //console.log($(this));
     //hasClass是jquery的方法
     //ele  是jquery dom 还是js dom?   是js对象
     //如果要使用该方法   将ele  js对象转化为jquery对象   $(ele)
     if ($(html).hasClass("myli")) {
         //return $(html)
         return ".myli"    //.myli   即选择器,直接就是jquery
     }
}));

is(expr|obj|ele|fn) 返回值是布尔类型

console.log($("ul>li").is(".myli"));
console.log($("ul>li").is($(".myli")));
 $("ul>li").filter(function (index,ele) {
     console.log(index, ele);
     if($(ele).is(".myli")){
         console.log("找到了");
     }
 })
 console.log($("ul>li").is(function (index, ele) {
     console.log(index, ele);
     if ($(ele).hasClass("myli")) {
         console.log("找到了");
         return $(ele)
     }
}));

map(callback)

console.log($("ul>li").map(function (index, ele) {
     console.log(index, ele);
     //return $(ele).html();
     return ele;               //ele是一个是一个js对象,map映射后变为一个jquery对象
}).get());                     //返回的是一个jquery 对象,加get()后变为dom对象(即数组)

 //下面两者等效    get()返回的是js对象    不同于eq()它返回的是jquery对象
console.log($("ul>li")[0]);
console.log($("ul>li").get(0));

has(expr|ele) 存在父子关系,找子代的某个元素

 //has()   父子关系中,保留父元素
 console.log($("ul").has(".myli"));

not(expr|ele|fn)

//not    除去指定元素后所保留的
console.log($("ul>li").not(".myli"));
console.log($("ul>li").not($(".myli")));
console.log($("ul>li").not(function (index, ele) {
     console.log(index, ele);
     if ($(ele).is(".myli")) {
         return ele;  //除去myli的其他li
     }
 }));

slice(start,[end])
参数start end

console.log($("ul>li").slice(1, 3));
console.log($("ul>li").filter(".myli"));//选出含有myli的那个
console.log($("ul>li").filter(function (index, ele) {
	console.log(index, ele);
	if ($(ele).hasClass("myli")) {
    return $(ele);
	//return ele;
	//return "myli";
	//return ".myli";
}
}));

2.查找

children([expr]) 存在父子关系 直接子元素(不跨辈)

console.log($(".menu").children());  //相当于ul>li
console.log($(".menu>li"));
console.log($(".menu li"));
console.log($(".menu").children(".li3"));

find(e|o|e) expr jquery对象 ele 存在父子关系

console.log($(".menu").find(".li3"));
console.log($(".menu").find(".myli"));
console.log($(".menu").find($(".li3")));
console.log($(".menu").find($(".li3").get(0)));

next([expr]) 当前元素的下一个(紧挨着的那个同级元素)

console.log($(".menu").find(".li3").next());
console.log($(".menu").find(".li3").next(".lichild"));

nextAll([expr]) 当前元素的后面所有同级元素

console.log($(".menu").find(".li3").nextAll());
console.log($(".menu").find(".li3").nextAll(".lichild"));

offsetParent() 获取最近一级含有position的父级元素

console.log($(".li3").offsetParent());

parent([expr]) 只找父元素
parents 找所有祖先元素(包括body html等祖先元素)

console.log($(".myli").parent());
console.log($(".myli").parents());
console.log($(".myli").parents(".menu"));

prev([expr])
prevAll([expr])
prev prevAll与next nextAll相对

console.log($(".li3").prev());
console.log($(".li3").prevAll());
console.log($(".li3").prevAll("p"));

siblings([expr]) 所有兄弟元素(同级元素)

console.log($(".li3").siblings());
console.log($(".li3").siblings("p"));

3.串联

add(e|e|h|o[,c])1.9*
addBack()1.9+
contents()
end()

console.log($("p").add($("span")));
contents  获取当前元素的所有子节点 (包括回车)
console.log($(".myp").contents());
//end   回到上一次破坏性修改
console.log($("ul").find("li").slice(0, 2).end());
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!