$("div").last();// 返回最后一个div对象(zepto对象) //相当于 $("div").eq(-1); 两方法不接收任何参数。 ?...(dom对象,不是zepto对象) $("div").get(); //所有div对象组成的一个数组 该方法与eq方法的区别在于,eq返回的是zepto对象,而get返回的是dom对象,$()...所以说循环停止的条件就是node节点为document时。 最后调用filtered方法并返回。 siblings: 获取对象所有的兄弟节点。参数可以是一个选择器字符串,如传入参数则根据选择器过滤。...$("p").siblings(); // 获取所有p标签的同级标签 $("p").siblings(".ad"); // 所有的p标签的同级的className包含ad的元素 通过siblings...方法内部取出元素的父节点并传入children方法,返回元素的父节点的子节点,相当于自己的所有兄弟节点以及自身。 通过该返回集合call一下filter方法。 并将除了自身以外的所有节点返回。
) { width: 40px; height: 40px; } 您可以将此选择器视为首先 1) 选择所有框,然后 2) 将元素过滤为仅匹配模式“框 + 圆”的元素,这将仅返回圆的前一个同级元素...可以使用相邻同级组合器来选择另一个之前的任何特定元素。...(而不是笼统的*)。...选择所有前面的兄弟姐妹#https://tobiasahlin.com/blog/previous-sibling-css-has/#selecting-all-preceding-siblings 如果要选择所有先前的同级元素...circle.box 选择除最相邻的兄弟姐妹之外的所有先前兄弟姐妹#https://tobiasahlin.com/blog/previous-sibling-css-has/#selecting-all-preceding-siblings
NavigableString 我们可以通过 name 和 attrs 来获取标签的属性等内容,但是在很多情况下我们想要获取的是标签所包含的内容,此时我们就需要使用 string 属性。...,在 Python 爬虫第一篇(urllib+regex) 中使用的正则表达式来获取标签所包含的内容,有兴趣的话可以去看一下。...提供了子孙节点、内容属性「.string 属性」、父节点、兄弟节点、前后节点等多种方式来遍历整个文档。...当 name 参数传入方法时,此方法仅接受一个参数「HTML 文档中的一个节点」,当该方法返回 True 时表示当前元素被找到,反之则返回 False。...soup.find_all(attrs={"data-foo": "value"}) CSS 选择器 我们在写 CSS 时,标签名不加任何修饰,类名前加点,id名前加 #,在这里我们也可以利用类似的方法来筛选元素
[class'] soup.p.attrs #获取该节点的所有属性和值 获取内容 语法格式:soup.节点.string print(soup.p.string)#打印p节点的文本内容 嵌套选择 语法格式...findnextsiblings()和findnextsibling():前者返回后面所有的兄弟节点,后者返回后面第一个兄弟节点。...findprevioussiblings()和findprevioussibling():前者返回前面所有的兄弟节点,后者返回前面第一个兄弟节点。...findallnext()和find_next():前者返回节点后所有符合条件的节点,后者返回第一个符合条件的节点。...findallprevious()和find_previous():前者返回节点后所有符合条件的节点,后者返回第一个符合条件的节点。
和 previous_siblings next_siblings 返回后面的兄弟节点 previous_siblings 返回前面的兄弟节点 4、回退和前进 把html解析看成依次解析标签的一连串事件...soup.find_all(re.compile("^b")) # [The Dormouse's story] 列表 传入列表参数,将返回与列表中任一元素匹配的内容。...soup.find_all(["a", "b"]) True True可以匹配任何值,下面的代码查找到所有的tag,但是不会返回字符串节点。...soup('b') 4、其他搜索方法 find_parents() 返回所有祖先节点 find_parent() 返回直接父节点 find_next_siblings() 返回后面所有的兄弟节点...find_next_sibling() 返回后面的第一个兄弟节点 find_previous_siblings() 返回前面所有的兄弟节点 find_previous_sibling() 返回前面第一个兄弟节点
jquery一.筛选 筛选与之前的选择器雷同,筛选提供的都是函数. 1....:获取他的所有孩子 closest(...):从元素本身开始,逐级向上级元素匹配,并返回最先匹配的元素 find(...)...:从下一个兄弟开始,直到指定元素结束 parent():获取父元素 parents():匹配元素的祖先元素的元素(不包含根元素) prev():上一个兄弟 prevAll():前面的所有兄弟 prevUntil...():从上一个兄弟开始,直至指定元素结束 siblings():所有的兄弟 查找: 带有until了解下 ☆children():孩子 例如:选择 id=two 所有子元素 $("#two").children...():从上一个兄弟开始,直至指定元素结束 ☆siblings():所有的兄弟 例如: $("#two").siblings(); $(document
IE8 及以下版本不支持 文件较小,执行效率更高 3.x 完全不再支持 IE8 及以下版本 提供了一些新的 API 提供不包含 AJAX / 动画 API 的版本 # 1.4 jQuery 引入方式...dom,调用 jQuery 对象的任何方法后返回的还是当前 jQuery 对象。...() 方法描述:在匹配元素集合中的每个元素前边插入参数所指定的内容,作为其兄弟节点。...我是段落2 列表项3 $('ul>p').remove(); # 3.2.4 DOM 替换 # 1. replaceWith() 方法介绍:用提供的内容替换集合中所有匹配的元素并且返回被删除元素的集合...() 方法描述:获得集合中每个匹配元素的兄弟元素,可以提供一个可选的选择器来进行筛选。
soup.find_all(re.compile("^b")): print(tag.name) 输出为: body b 1.3 列表 传入列表参数; Beautiful Soup会将与列表中任一元素匹配的内容返回...,而 find() 方法直接返回结果;find( name , attrs , recursive , string , **kwargs ) find_all() 方法没有找到目标是返回空列表, find...( name , attrs , recursive , string , **kwargs ) 这2个方法通过 .next_siblings 属性对当tag的所有后面解析的兄弟tag节点进行迭代; find_next_siblings...() 方法返回所有符合条件的后面的兄弟节点; find_next_sibling() 只返回符合条件的后面的第一个tag节点; 如: first_link = soup.a print(first_link...属性对当前tag的前面解析的兄弟tag节点进行迭代; find_previous_siblings() 方法返回所有符合条件的前面的兄弟节点; find_previous_sibling() 方法返回第一个符合条件的前面的兄弟节点
该方法返回的是第一个p节点中包含的所有直接子字节点和文本,不包含孙节点,两个节点之间的文本也当做是一个节点返回。...获取第一个a节点的父节点 soup.a.parents 获取第一个a节点的所有祖先节点 soup.p.next_siblings 获取第一个p节点的下一个兄弟节点 soup.p.previous_siblings...find_parents() 返回所有祖先节点 find_parent() 返回父节点 find_next_siblings() 往后查找,所有兄弟节点 find_next_sibling() 往后查找...,返回第一个兄弟节点 find_previous_siblings() 往前查找,返回所有兄弟节点 find_previous_sibling() 往前查找,返回第一个兄弟节点 在使用上面的方法时,如果参数中有...p节点的直接子节点,以列表的形式返回,这里返回列表中有3个元素,分别是 后的字符串,a节点、演唱者/播次数。
DOM对象:使用JavaScript中的方法获取页面中的元素返回的对象就是dom对象。...注意:jQuery选择器返回的是jQuery对象。 jQuery选择器有很多,基本兼容了CSS1到CSS3所有的选择器,并且jQuery还添加了很多更加复杂的选择器。...”); 获取当前元素中的后代元素中的li元素 siblings(selector) $(“#first”).siblings(“li”); 查找兄弟节点,不包括自己本身。...prev() $(“li”).prev() 找上一次兄弟 //【案例:下拉菜单】this+children+mouseenter+mouseleave //【案例:突出展示】siblings+find...index方法 index()方法返回的是当前元素在所有兄弟元素里面的索引。
'),返回的结果是一个列表。...比如,contents是获取到一个标签之间的所有内容,同一层级的多个子节点在contents中算作列表中的一个元素。此时,可以通过.children将子节点中的同一层级的标签进行分割。 ?...descendants返回的结果是一个生成器。 ? 结果:首页这个内容,相当于是span的子节点,.descendants会把它当成子孙节点处理,其他子孙节点标签同理。 ?...5)、.strings 和 stripped_strings:获取一组NavigableString 类型子节点 .strings获取的信息中,包含空行,stripped_strings可以去除前后所有的空行以及为空的内容...和 .previous_siblings:通过 .next_siblings 和 .previous_siblings 属性可以对当前节点的兄弟节点迭代输出。
和previous_sibling,这个两个属性分别获取节点的上一个兄弟元素和下一个兄弟元素。...而next_siblings和previous_siblings是获取前面和后面的兄弟节点,返回的类型依然是生成器类型。...find_next_siblings()和find_next_sibling():前者返回后面的所有兄弟节点,后者返回后面第一个兄弟节点。...find_previous_siblings和find_previous_sibling():前者返回前面的所有兄弟节点,后者返回前面第一个兄弟节点。...CSS选择器 Beautiful Soup还为我们提供了另一种选择器,就是CSS选择器。熟悉前端开发的小伙伴来说,CSS选择器肯定也不陌生。
()或者$("span").parent(".class") jQuery.parents(expr),类似于jQuery.parents(expr),但是是查找所有祖先元素,不限于父元素 jQuery.children...(expr).返回所有子节点,这个方法只会返回直接的孩子节点,不会返回所有的子孙节点 jQuery.contents(),返回下面的所有内容,包括节点和文本。...这个方法和children()的区别就在于,包括空白文本,也会被作为一个 jQuery对象返回,children()则只会返回节点 jQuery.prev(),返回上一个兄弟节点,不是所有的兄弟节点 jQuery.prevAll...(),返回所有之前的兄弟节点 jQuery.next(),返回下一个兄弟节点,不是所有的兄弟节点 jQuery.nextAll(),返回所有之后的兄弟节点 jQuery.siblings(),返回兄弟姐妹节点...jQuery.filter()是从初始的jQuery对象集合中筛选出一部分,而jQuery.find()的返回结果,不会有初始集合中的内容,比如$("p"),find("span"),是从元素开始找
jQuery的选择器基本兼容了CSS1到CSS3所有的选择器,并且还添加了很多复杂的选择器....等于myClass的元素 siblings(selector) $("#first").siblings("li"); 查找兄弟节点,不包括自己本身 parent() $("#first...eq(index) 返回被选元素中带有指定索引号的元素.索引号从0开始,因此首个元素的索引号是0而不是1....作用:复制匹配的元素 复制$(selector)所匹配到的元素(深度复制) cloneNode(true) 返回值为复制的新元素,和原来的元素没有任何关系.即修改新元素,不会影响到原来的元素...可选的 callback 参数是请求成功后所执行的函数名.第一个回调参数 data 存有被请求页面的内容,而第二个回调参数 status 存有请求的状态.
// 简单理解:给匹配到的所有元素进行循环遍历,执行相应的方法,而不用我们再进行循环,简化我们的操作,方便我们调用。...(selector) $(" . first").siblings("li"); 查找兄弟节点,不包括自己本身 nextAll([expr]) $(".first"). nextAll() 查找当前元索之后所有的同辈元素..." ) 检查当前的元素是否含有某个特定的类,如果有,则返回true eq( index) $("li").eq(2); 相当于$("li:eq(2)"),index从0开始 重点记住: parent(...,排他思想:当前元素设置样式,其余的兄弟元素清除样式。...// 4.让其余的图片(就是其他的兄弟)隐藏起来 $("#content div").eq(index).siblings().hide(); }) })
这里有个问题需要注意,通过这种方式获取标签,如果文档中有多个这样的标签,返回的结果是第一个标签的内容,如上面我们通过soup.p获取p标签,而文档中有多个p标签,但是只返回了第一个p标签内容 获取名称...children的使用 通过下面的方式也可以获取p标签下的所有子节点内容和通过contents获取的结果是一样的,但是不同的地方是soup.p.children是一个迭代对象,而不是列表,只能通过循环的方式获取素有的信息...,以及父节点的父节点也放到列表中,并且最后还会讲整个文档放到列表中,所有列表的最后一个元素以及倒数第二个元素都是存的整个文档的信息 兄弟节点 soup.a.next_siblings 获取后面的兄弟节点...find_next_siblings()返回后面所有兄弟节点,find_next_sibling()返回后面第一个兄弟节点。...find_previous_siblings()返回前面所有兄弟节点,find_previous_sibling()返回前面第一个兄弟节点。
为one的下一个div元素 $("prev~siblings") 选取 prev 元素之后的所有siblings元素 集合元素 $("#one~div")选取id为two的元素后面的所有div兄弟元素...集合元素 $(":header") :animated 选取当前正在执行动画的所有元素 集合元素 $("div:animated") 2、内容过滤选择器 选择器 描述 返回 示例 :contains(...text) 选取含有文本内容text的元素 集合元素 $("div:contains('我')") :empty 选取不包含子元素或文本的空元素 集合元素 $("div:empty") :has(selector...) 选取含有选择器所匹配元素的元素 集合元素 $("div:has(p)") :parent 选取含有子元素或文本的元素 集合元素 $("div:parent") 3、可见性过滤选择器 选择器 描述...4、属性过滤选择器 选择器 描述 返回 示例 [attribute] 选取拥有此属性的元素 集合元素 $("div[id]") [attribute = value] 选取属性值为value的元素 集合元素
(soup.p['class']) 运行结果: dromouse ['title'] 在这里注意到有的返回结果是字符串,有的返回结果是字符串组成的列表。...children 属性来进行选择,返回结果可以看到是生成器类型,所以接下来我们用 for 循环输出了一下相应的内容,内容其实是一样的,只不过 children 返回的是生成器类型,而 contents...,next_siblings 和 previous_siblings 则分别返回所有前面和后面的兄弟节点的生成器。...find() 除了 find_all() 方法,还有 find() 方法,只不过 find() 方法返回的是单个元素,也就是第一个匹配的元素,而 find_all() 返回的是所有匹配的元素组成的列表。...find_next_siblings() find_next_sibling() find_next_siblings() 返回后面所有兄弟节点,find_next_sibling() 返回后面第一个兄弟节点
,不限于父元素 jQuery.children(expr),返回所有子节点,这个方法只会返回直接的孩子节点,不会返回所有的子孙节点 jQuery.contents(),返回下面的所有内容,包括节点和文本...这个方法和 children() 的区别就在于,包括空白文本,也会被作为一个 jQuery 对象返回, children() 则只会返回节点 jQuery.prev(),返回上一个兄弟节点,不是所有的兄弟节点...jQuery.prevAll(),返回所有之前的兄弟节点 jQuery.next(),返回下一个兄弟节点,不是所有的兄弟节点 jQuery.nextAll(),返回所有之后的兄弟节点 jQuery.siblings...,而 jQuery.find(),的返回结果,不会有初始集合中的内容,比如 $("p").find("span") ,是从 元素开始找 ,等同于 $("p span") JS获取:...; //获得s的最后一个子节点 JS获取节点父级,子级元素:JS的方法会比JQUERY麻烦很多,主要则是因为FF、谷歌浏览器会把你的换行也当作DOM元素:空的text元素,目前IE也是这样 <div
这里用列表输出了它的索引和内容,而列表中的元素就是 a 节点的祖先节点。 兄弟节点 上面说明了子节点和父节点的获取方式,如果要获取同级的节点(也就是兄弟节点),应该怎么办呢?...,next_siblings 和 previous_siblings 则分别返回后面和前面的兄弟节点。...find 除了 find_all 方法,还有 find 方法,只不过 find 方法返回的是单个元素,也就是第一个匹配的元素,而 find_all 返回的是所有匹配的元素组成的列表。...find_next_siblings 和 find_next_sibling:前者返回后面所有的兄弟节点,后者返回后面第一个兄弟节点。...find_previous_siblings 和 find_previous_sibling:前者返回前面所有的兄弟节点,后者返回前面第一个兄弟节点。
领取专属 10元无门槛券
手把手带您无忧上云