javascript操作DOM元素

1)HTMLElement的元数据属性:

checked——获取或设置checked属性是否存在;

classList——获取或设置元素所述的类列表(返回DOMTokenList);

             classList.add(<class>)——给元素添加指定的类;

             classList.contains(<class>)——如果元素属于指定的类就返回true;

             classList.length——返回元素所属类的数量;

             classList.remove(<class>)——从元素上移除指定的类;

             classList.toggle(<class>)——如果类不存就添加它,如果存在就移除它;

className——获取或设置元素所属的类列表

dir——获取或设置dir属性的值;

disabled——获取或设置disabled属性是否存在;

hidden——获取或设置hidden属性是否存在;

id——获取或设置id属性的值;

lang——获取或设置lang属性的值;

spellcheck——获取或设置spellcheck属性是否存在;

tabIndex—获取或设置tabindex属性的值;

tagName——返回标签名(标识元素类型);

title——获取或设置title属性的值;

2)与HTML属性相关的属性和方法

attributes——返回应用到元素上的属性数组;

dataset——返回以data-开头的属性数组;

getAttribute(<name>)——返回指定属性的值;

hasAttribute(<name>)——如果元素带有指定的属性则返回true;

removeAttribute(<name>)——从元素上移除指定属性;

setAttribute(<name>,<value>)——应用一个指定名称和值的属性;

3)Text对象的成员

appendData(<string>)——把指定字符串附加到文本块末尾;

data——获取或设置文本;

deleteData(<offest>,<count>)——从文本中移除字符串,第一个数字是偏移量,第二个是要移除的字符数量;

insertData(<offset>,<string>)——在指定偏移量出插入指定字符串;

length——返回字符的数量;

replaceData(<offset>,<count>,<string>)——用指定字符串替换一段文本;

replaceWholeText(<string>)——替换全部文本;

splitText(<number>)——将现有的Text元素在指定偏移量出一分为二;

substringData(<offset>,<count>)——返回文本的子串;

wholeText——获取文本;

4)DOM操作成员

appendChild(HTMLElement)——将指定元素添加为当前元素的子元素;

removeChild(HTMLElement)——从当前元素上移除指定的子元素;

replaceChild(HTMLElement,HTMLElement)——替换当前元素的某个子元素;

cloneNode(boolean)——复制一个元素;

compareDocumentPosition(HTMLElement)——判断一个元素的相对位置;

innerHTML——获取或设置元素的内容;

outerHTML——获取或设置某个元素的HTML和内容;

insertAdjacentHTML(<pos>,<text>)——相对于元素插入HTML;

         其中pos(参数):afterbegin——将片段作为当前元素的第一个子元素插入;

                        afterend——将片段插入当前元素之后;

                        beforebegin——将片段插入当前元素之前;

                        beforeend——将片段作为当前元素的最后一个子元素插入;

insertBefore(<newElem>,<childElem>)——在第二个(子)元素之前插入第一个元素;

isEqualNode(<HTMLElement>)——判断指定元素是否与当前元素相同;

isSameNode(<HTMLElement>)——判断指定元素是否就是当前元素;

用document对象创建元素:

createElement(<tag>)——创建一个属于指定标签类型的新HTMLElement对象;

createTextNode(<text>)——创建一个带有指定内容的新Text对象;

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>上海远地资产管理有限公司</title>
    <meta name="author" content="jason"/>
    <meta name="description" content="上海远地资产管理有限公司(简称:远地资产),是一家专业的互联网金融服务平台."/>
    <link rel="shortcut icon" href="images/favicon.ico" type="image/x-icon"/>
    <style>
        p{
            border: medium double black;
            clear:left;
        }
        pre{
            border:thin solid green;
        }
        p.newclass{
            background-color: grey;
            color: white;
        }
        table{
            border:thin solid black;
            border-collapse: collapse;
            margin: 10px;
            float: left;
        }
        td{
            padding: 4px 5px;
        }
    </style>
</head>
<body>
    <p id="textblock" dir="ltr" lang="zh-CN" class="yuandi numbers" data-fruit="apple" data-sentiment="like">
        远地本着“构筑诚信,永续发展”的理念为客户提供专业的理财服务、财富管理以及产品方案推荐。
        远地都进来看看撒将通过自身的专业优势和有效的信息交流平台,<b>为资金富裕方和资金需求方打造一个专业</b>,诚信,共赢,睿智的服务平台,
        帮助客户实现稳定、安全的财富增值,帮助更多优秀的中小型企业融资成功。
    </p>
    <pre id="results"></pre>
    <button id="pressme">点击改变样式</button>
    <pre id="results2"></pre>
    <button id="toggle">切换样式</button>
    <pre id="results3"></pre>
    <pre id="results4"></pre>
    <pre id="results5"></pre>
    <button id="pressme1">点击获取字符数量</button>
    <pre id="results6"></pre>
    <table border="1">
        <thead>
            <tr>
                <th>Name</th><th>Color</th>
            </tr>
        </thead>
        <tbody id="fruitsBody">
            <tr>
                <td>Banana</td><td>Yellow</td>
            </tr>
            <tr id="apple">
                <td>Apple</td><td>Red</td>
            </tr>
        </tbody>
    </table>
    <table border="1">
        <thead>
            <tr>
                <th>Fruit</th><th>Color</th>
            </tr>
        </thead>
        <tbody id="fruitsBody3">
            <tr id="plumrow">
                <td>Plum</td><td>Purple</td>
            </tr>
        </tbody>
    </table>
    <pre id="results7"></pre>
    <button id="add">添加元素</button>
    <button id="remove">移除元素</button>
    <button id="move">移动元素</button>
    <table border="1">
        <thead>
        <tr>
            <th>Multiply</th><th>Results</th>
        </tr>
        </thead>
        <tbody id="fruitsBody2">
        <tr>
            <td class="sum">1*1</td><td class="result">1</td>
        </tr>
        </tbody>
    </table>
    <button id="copy">复制元素</button>
    <table border="1">
        <thead>
        <tr>
            <th>Fruit</th><th>Color</th>
        </tr>
        </thead>
        <tbody>
        <tr id="applerow">
            <td>Plum</td><td>Purple</td>
        </tr>
        </tbody>
    </table>
    <textarea rows="3" id="results8"></textarea>
    <p>
        <button id="inner">Inner HTML</button>
        <button id="outer">Outer HTML</button>
    </p>
    <table border="1">
        <thead>
        <tr>
            <th>Fruit</th><th>Color</th>
        </tr>
        </thead>
        <tbody id="fruitsBody4">
        <tr id="targetrow">
            <td>placeHolder</td>
        </tr>
        </tbody>
    </table>
    <p id="buttons">
        <button id="ab">After Begin</button>
        <button id="ae">After End</button>
        <button id="bb">Before Begin</button>
        <button id="be">Before End</button>
    </p>
    <p>
        <button id="insert">插入元素</button>
    </p>
    <script>
        var results=document.getElementById("results");
        var elem=document.getElementById("textblock");
        //使用基本元数据属性
        results.innerHTML+="tag:"+elem.tagName+"\n";
        results.innerHTML+="id:"+elem.id+"\n";
        results.innerHTML+="dir:"+elem.dir+"\n";
        results.innerHTML+="lang:"+elem.lang+"\n";
        results.innerHTML+="hidden:"+elem.hidden+"\n";
        results.innerHTML+="disabled:"+elem.disabled+"\n";
        //使用className属性
        document.getElementById("pressme").οnclick=function(e){
            elem.className+=" newclass";
        }
        //使用classList属性
        var results2=document.getElementById("results2");
        document.getElementById("toggle").οnclick=toggleClass;
        listClasses();
        function listClasses(){
            var classlist=elem.classList;
            results2.innerHTML="Current classes: "
            for(var i=0;i<classlist.length;i++){
                results2.innerHTML+=classlist[i]+" ";
            }
        }
        function toggleClass(){
            elem.classList.toggle("newclass");
            listClasses();
        }
        //使用属性方法
        var results3=document.getElementById("results3");
        results3.innerHTML="元素是否有lang属性:"+elem.hasAttribute("lang")+"\n";
        results3.innerHTML+="lang属性值是:"+elem.getAttribute("lang")+"\n";
        results3.innerHTML+="设置lang属性\n";
        elem.setAttribute("lang","en-US");
        results3.innerHTML+="lang属性值是:"+elem.getAttribute("lang")+"\n";
        //使用dataset属性
        var results4=document.getElementById("results4");
        for(var attr in elem.dataset){
            results4.innerHTML+=attr+"\n";
        }
        results4.innerHTML+="data-fruit的属性值是:"+elem.dataset["fruit"];
        //使用所有属性
        var results5=document.getElementById("results5");
        var attrs=elem.attributes;
        for(var i=0;i<attrs.length;i++){
            results5.innerHTML+="Name:"+attrs[i].name+" value:"+attrs[i].value+"\n";
        }
        attrs["data-fruit"].value="banana";
        results5.innerHTML+="data-fruit的属性值是:"+attrs["data-fruit"].value;
        //处理文本
        var results6=document.getElementById("results6");
        document.getElementById("pressme1").οnclick=function(){
            var textElem=elem.firstChild;
            results6.innerHTML="这个p元素含有"+textElem.length+"chars\n";
            textElem.replaceWholeText("这是一个新字符串");
        }
        //创建和删除元素
        var tableBody=document.getElementById("fruitsBody");
        document.getElementById("add").οnclick=function(){
            var row=tableBody.appendChild(document.createElement("tr"));
            row.setAttribute("id","newrow");
            row.appendChild(document.createElement("td")).appendChild(document.createTextNode("Plum"));
            row.appendChild(document.createElement("td")).appendChild(document.createTextNode("Purple"));
        }
        document.getElementById("remove").οnclick=function(){
            var row=document.getElementById("newrow");
            row.parentNode.removeChild(row);
        }
        //复制元素
        var tableBody2=document.getElementById("fruitsBody2");
        document.getElementById("copy").οnclick=function(){
            var count=tableBody2.getElementsByTagName("tr").length+1;
            var newElem=tableBody2.getElementsByTagName("tr")[0].cloneNode(true);
            newElem.getElementsByClassName("sum")[0].firstChild.data=count+"*"+count;
            newElem.getElementsByClassName("result")[0].firstChild.data=count*count;
            tableBody2.appendChild(newElem);
        }
        //移动元素
        document.getElementById("move").οnclick=function(){
            var appleElem=document.getElementById("apple");
            document.getElementById("fruitsBody3").appendChild(appleElem);
        }
        //比较元素对象
        var elemByID=document.getElementById("plumrow");
        var elemByPos=document.getElementById("fruitsBody3").getElementsByTagName("tr")[0];
        if(elemByID.isSameNode(elemByPos)){//firefox不支持
            document.getElementById("results7").innerHTML="元素是同一个";
        }
        //使用innerhtml和outerhtml
        var results8=document.getElementById("results8");
        var applerow=document.getElementById("applerow");
        document.getElementById("inner").οnclick=function(){
            results8.innerHTML=applerow.innerHTML;
        }
        document.getElementById("outer").οnclick=function(){
            results8.innerHTML=applerow.outerHTML;
        }
        //插入html片段
        var target=document.getElementById("targetrow");
        var buttons=document.getElementById("buttons").getElementsByTagName("button");
        for(var i=0;i<buttons.length;i++){
            buttons[i].οnclick=handleButtonPress;
        }
        function handleButtonPress(e){
            if(e.target.id=="ab"){//firefox不支持
                target.insertAdjacentHTML("afterbegin","<td>After Begin</td>");
            }else if(e.target.id=="be"){
                target.insertAdjacentHTML("beforeend","<td>Before End</td>");
            }else if(e.target.id="bb"){
                target.insertAdjacentHTML("beforebegin","<tr><td colspan='2'>Before Begin</td>");
            }else{
                target.insertAdjacentHTML("afterend","<tr><td colspan='2'>After End</td>");
            }
        }
        //将一个元素插入文本块
        document.getElementById("insert").οnclick=function(){
            elem.firstChild.splitText(10);
            var newText=elem.childNodes[1].splitText(8).previousSibling;
            elem.insertBefore(document.createElement("b"),newText).appendChild(newText);
        }
    </script>
</body>
</html>




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值