zoukankan      html  css  js  c++  java
  • jQuery——修改DOM

    直接使用浏览器提供的API对DOM结构进行修改,不但代码复杂,而且要针对浏览器写不同的代码。

    有了jQuery,我们就专注于操作jQuery对象本身,底层的DOM操作由jQuery完成就可以了,这样一来,修改DOM也大大简化了。

    1、添加DOM

    要添加新的DOM节点,除了通过jQuery的html()这种暴力方法外,还可以用append()方法,例如:

    <div id="test-div">
        <ul>
            <li><span>JavaScript</span></li>
            <li><span>Python</span></li>
            <li><span>Swift</span></li>
        </ul>
    </div>
    

    如何向列表新增一个语言?首先要拿到<ul>节点:

    var ul = $('#test-div>ul');
    

    然后,调用append()传入HTML片段:

    ul.append('<li><span>Haskell</span></li>');
    

    除了接受字符串,append()还可以传入原始的DOM对象,jQuery对象和函数对象:

    // 创建DOM对象:
    var ps = document.createElement('li');
    ps.innerHTML = '<span>Pascal</span>';
    // 添加DOM对象:
    ul.append(ps);
    
    // 添加jQuery对象:
    ul.append($('#scheme'));
    
    // 添加函数对象:
    ul.append(function (index, html) {
        return '<li><span>Language - ' + index + '</span></li>';
    });
    

    传入函数时,要求返回一个字符串、DOM对象或者jQuery对象。因为jQuery的append()可能作用于一组DOM节点,只有传入函数才能针对每个DOM生成不同的子节点。

    append()把DOM添加到最后,prepend()则把DOM添加到最前。

    另外注意,如果要添加的DOM节点已经存在于HTML文档中,它会首先从文档移除,然后再添加,也就是说,用append(),你可以移动一个DOM节点。

    如果要把新节点插入到指定位置,例如,JavaScript和Python之间,那么,可以先定位到JavaScript,然后用after()方法:

    var js = $('#test-div>ul>li:first-child');
    js.after('<li><span>Lua</span></li>');
    

    也就是说,同级节点可以用after()或者before()方法。

    2、删除节点

    要删除DOM节点,拿到jQuery对象后直接调用remove()方法就可以了。如果jQuery对象包含若干DOM节点,实际上可以一次删除多个DOM节点:

    var li = $('#test-div>ul>li');
    li.remove(); // 所有<li>全被删除
    
  • 相关阅读:
    Leetcode Plus One
    Leetcode Swap Nodes in Pairs
    Leetcode Remove Nth Node From End of List
    leetcode Remove Duplicates from Sorted Array
    leetcode Remove Element
    leetcode Container With Most Water
    leetcode String to Integer (atoi)
    leetcode Palindrome Number
    leetcode Roman to Integer
    leetcode ZigZag Conversion
  • 原文地址:https://www.cnblogs.com/godles/p/12200315.html
Copyright © 2011-2022 走看看