为了账号安全,请及时绑定邮箱和手机立即绑定
慕课网数字资源数据库体验端
jQuery基础(二)—DOM篇_学习笔记_慕课网
为了账号安全,请及时绑定邮箱和手机立即绑定

jQuery基础(二)—DOM篇

Aaron艾伦 Web前端工程师
难度入门
时长 2小时17分
  • 要用到移除指定元素的时候,jQuery提供了empty()与remove([expr])二个方法,两个都是删除元素,但是两者还是有区别

    empty方法

    • 严格地讲,empty()方法并不是删除节点,而是清空节点,它能清空元素中的所有后代节点

    • empty不能删除自己本身这个节点

    remove方法

    • 该节点与该节点所包含的所有后代节点将同时被删除

    • 提供传递一个筛选的表达式,删除指定合集中的元素


    查看全部
  • jQuery遍历之closest()方法

    以选定的元素为中心,往内查找可以通过find、children方法。如果往上查找,也就是查找当前元素的父辈祖辈元素,jQuery提供了closest()方法,这个方法类似parents但是又有一些细微的区别,属于使用频率很高的方法


    查看全部
  • ul li 是一个组合:是无序列表标签,在实际中用的非常多,

    与之对应的是有序列表:ol li


    查看全部
  • wrapInner( wrappingElement ):给集合中匹配的元素的内部,增加包裹的HTML结构

    听起来有点绕,可以用个简单的例子描述下,简单的看一段代码:

    <div>p元素</div>
    <div>p元素</div>


    查看全部
  • $('p').wrapAll('<div></div>')

    结果是这样,给所有的p元素一起添加了一个父元素

    <div>
       <p>p元素</p>
       <p>p元素</p>
    </div>


    $('p').wrapAll(function() {
       return '<div><div/>'; 
    })

    结果是这样,为每一个p元素添加一个父元素

    <div>
       <p>p元素</p>
    </div>
    <div>
       <p>p元素</p>
    </div>


    查看全部
  • 回调函数unwrap生效前,执行function,再执行unwrap

    return返回true执行unwrap 反之停止

    查看全部
  • 匿名函数function返回(return)一个值:'<div class="' + $(this).text() + '" />';
    $(this)为当前选择的a元素,即$('a'),所以div的class也就是“a元素”,

    $(this).text()="a元素",很明显期望的最后结果是<div class="a元素"/>


    查看全部
  • if (!$("p").length)是if ($("p").length == null)另一种写法

    应该是当你多次点击之后p元素删除完了,这时候再点击删除键那么p = $("p").detach()中的p则会赋值为NULL,这时候你怎么添加都不会有效果了



    查看全部
  • if (!$("p").length) return; 

    if语句接收一个布尔值,如果布尔值为true则执行接下来的语句,布尔值为false则执行else关键词后的语句。

    JavaScript语言有个特点”隐式转换”:在需要布尔值会将其他类型自动往布尔值转换$("p").length本来返回的是number类型的0,但被自动转化为布尔值false了。前面也说了,如果IF语句接收到布尔值false就会执行else关键词后的语句,这里没有写else后的语句。所老师把在前面加了个!,这个东西时一个叫“逻辑非”的操作符,作用就是将布尔值取反,true变成false,false变成true。

    所以if (!$("p").length) return;可以翻译成  if(p的长度为零的话~)就直接返回。不执行下一条的detach命令


    查看全部
  • empty方法

    • 严格地讲,empty()方法并不是删除节点,而是清空节点,它能清空元素中的所有后代节点

    • empty不能删除自己本身这个节点

    remove方法

    • 该节点与该节点所包含的所有后代节点将同时被删除

    • 提供传递一个筛选的表达式,删除指定合集中的元素


    查看全部
  • jQuery遍历之siblings()

    jQuery是一个合集对象,如果想快速查找指定元素集合中每一个元素的同辈元素,此时可以用siblings()方法

    理解节点查找关系:

    如下蓝色的class="item-2"的li元素,红色的节点就是它的siblings兄弟节点

    <ul class="level-3">     <li class="item-1">1</li>     <li class="item-2">2</li>     <li class="item-3">3</li> </ul>

     

    siblings()无参数

    取得一个包含匹配的元素集合中每一个元素的同辈元素的元素集合

    注意:jQuery是一个合集对象,所以通过siblings是匹配合集中每一个元素的同辈元素

     

    siblings()方法选择性地接受同一类型选择器表达式

    同样的也是因为jQuery是合集对象,可能需要对这个合集对象进行一定的筛选,找出目标元素,所以允许传一个选择器的表达式


    查看全部
  • jQuery遍历之next()方法

    jQuery是一个合集对象,如果想快速查找指定元素集合中每一个元素紧邻的后面同辈元素的元素集合,此时可以用next()方法

    理解节点查找关系:

    如下class="item-1"元素就是红色部分,那蓝色的class="item-2"就是它的兄弟元素

    <ul class="level-3">     <li class="item-1">1</li>     <li class="item-2">2</li>     <li class="item-3">3</li> </ul>

     

    next()无参数

    允许我们找遍元素集合中紧跟着这些元素的直接兄弟元素,并根据匹配的元素创建一个新的 jQuery 对象。

    注意:jQuery是一个合集对象,所以通过next匹配合集中每一个元素的下一个兄弟元素

     

    next()方法选择性地接受同一类型选择器表达式

    同样的也是因为jQuery是合集对象,可能需要对这个合集对象进行一定的筛选,找出目标元素,所以允许传一个选择器的表达式


    查看全部
  • jQuery遍历之closest()方法

    以选定的元素为中心,往内查找可以通过find、children方法。如果往上查找,也就是查找当前元素的父辈祖辈元素,jQuery提供了closest()方法,这个方法类似parents但是又有一些细微的区别,属于使用频率很高的方法

    closest()方法接受一个匹配元素的选择器字符串

    从元素本身开始,在DOM 树上逐级向上级元素匹配,并返回最先匹配的祖先元素

    例如:在div元素中,往上查找所有的li元素,可以这样表达

    $("div").closet("li')

     

    注意:jQuery是一个合集对象,所以通过closest是匹配合集中每一个元素的祖先元素

    closest()方法给定的jQuery集合或元素来过滤元素

    同样的也是因为jQuery是合集对象,可能需要对这个合集对象进行一定的筛选,找出目标元素,所以允许传一个jQuery的对象

    注意事项:在使用的时候需要特别注意下

    粗看.parents()和.closest()是有点相似的,都是往上遍历祖辈元素,但是两者还是有区别的,否则就没有存在的意义了

    1. 起始位置不同:.closest开始于当前元素 .parents开始于父元素

    2. 遍历的目标不同:.closest要找到指定的目标,.parents遍历到文档根元素,closest向上查找,直到找到一个匹配的就停止查找,parents一直查找到根元素,并将匹配的元素加入集合

    3. 结果不同:.closest返回的是包含零个或一个元素的jquery对象,parents返回的是包含零个或一个或多个元素的jquery对象

    具体使用可以参考右边代码区域:


    查看全部
  • jQuery遍历之parents()方法

    jQuery是一个合集对象,如果想快速查找合集里面的每一个元素的所有祖辈元素,此时可以用parents()方法

    其实也类似find与children的区别,parent只会查找一级,parents则会往上一直查到查找到祖先节点

    理解节点查找关系:

    <div class="div">     <ul class="son">         <li class="grandson">1</li>     </ul> </div>

     

    在li节点上找到祖 辈元素div, 这里可以用$("li").parents()方法

    parents()无参数

    parents()方法允许我们能够在DOM树中搜索到这些元素的祖先元素,从有序的向上匹配元素,并根据匹配的元素创建一个新的 jQuery 对象;

    返回的元素秩序是从离他们最近的父级元素开始的

    注意:jQuery是一个合集对象,所以通过parent是匹配合集中所有元素的祖辈元素

     

    parents()方法选择性地接受同一型选择器表达式

    同样的也是因为jQuery是合集对象,可能需要对这个合集对象进行一定的筛选,找出目标元素,所以允许传一个选择器的表达式

     

    注意事项:

    1 .parents()和.parent()方法是相似的,但后者只是进行了一个单级的DOM树查找 2  $( "html" ).parent()方法返回一个包含document的集合,而$( "html" ).parents()返回一个空集合。


    查看全部
  • jQuery遍历之find()方法

    jQuery是一个合集对象,如果想快速查找DOM树中的这些元素的后代元素,此时可以用find()方法,这也是开发使用频率很高的方法。这里要注意 children与find方法的区别,children是父子关系查找,find是后代关系(包含父子关系)

    理解节点查找关系:

    <div class="div">     <ul class="son">         <li class="grandson">1</li>     </ul> </div>

     

    代码如果是$("div").find("li"),此时,li与div是祖辈关系,通过find方法就可以快速的查找到了。

    .find()方法要注意的知识点:

    • find是遍历当前元素集合中每个元素的后代。只要符合,不管是儿子辈,孙子辈都可以。

    • 与其他的树遍历方法不同,选择器表达式对于 .find() 是必需的参数。如果我们需要实现对所有后代元素的取回,可以传递通配选择器 '*'。

    • find只在后代中遍历,不包括自己。

    • 选择器 context 是由 .find() 方法实现的;因此,$('.item-ii').find('li') 等价于 $('li', '.item-ii')(找到类名为item-ii的标签下的li标签)。

    注意重点:

    .find()和.children()方法是相似的 1.children只查找第一级的子节点 2.find查找范围包括子节点的所有后代节点


    查看全部

举报

0/150
提交
取消
课程须知
1、有HTML/CSS基础 2、有JavaScript基础
老师告诉你能学到什么?
1、jQuery的语法 2、jQuery节点操作
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!