• 3月
    23日
    锋利的jQuery —— (3)jQuery中的DOM操作
    jQuery dier 2014-03-23 14:29 1688 0

    《锋利的jQuery》读书笔记 —— jQuery中的DOM操作

    ·查找元素节点
    var str = $("#myDiv").text(); //<div id="myDiv" title="hello">123</div>
    alert(str); //结果:123
    
    ·查找属性节点
    var str = $("#myDiv").attr("title"); //<div id="myDiv" title="hello">123</div>
    alert(str); //结果:hello
    
    ·创建元素节点
    var $li1 = $("<span></span>"); //传入元素标记,自动包装并创建第一个li元素对象
    var $li2 = $("<span></span>"); //第二个,创建时需要遵循XHTML规则(闭合、小写)
    $("#myDiv").append($li1); //往id为myDiv的元素中添加一个元素
    $("#myDiv").append($li2); //结果:<div id="myDiv"><span></span><span></span></div>
    
    $("#myDIv").append($li1).append($li2); //客串:传说中的链式写法,省一行代码 ^_^
    
    ·创建文本节点
    var $li1 = $("<span>first</span>");
    var $li2 = $("<span>second</span>");
    $("#myDIv").append($li1).append($li2);
    //结果:<div id="myDiv"><span>first</span><span>second</span></div>
    
    ·创建属性节点
    var $li1 = $("<span title="111">first</span>");
    var $li2 = $("<span title="222">second</span>");
    $("#myDIv").append($li1).append($li2); 
    //结果:<div id="myDiv"><span title="111">first</span><span title="222">second</span></div>
    
    ·插入节点
    $("#myDiv").append("<span></span>"); //往id为myDiv的元素插入span元素
    $("<span></span>").appendTo("#myDiv"); //倒过来,将span元素插入到id为myDiv的元素
    
    $("#myDiv").prepend("<span></span>"); //往id为myDiv的元素内最前面插入span元素
    $("<span></span>").prependTo("#myDiv"); //倒过来,将span元素插入到id为myDiv的元素内的最前面
    
    $("#myDiv").after("<span></span>"); //往id为myDiv的元素后面插入span元素(同级,不是子元素)
    $("<span></span>").insertAfter("#myDiv"); //倒过来,将span元素插入到id为myDiv的元素后面(同级,不是子元素)
    
    $("#myDiv").before("<span></span>"); //往id为myDiv的元素前面插入span元素(同级,不是子元素)
    $("<span></span>").insertBefore("#myDiv"); //倒过来,将span元素插入到id为myDiv的元素前面(同级,不是子元素)
    
    ·删除节点
    $("#myDiv").remove(); //将id为myDiv的元素移除
    
    ·清空节点
    $("#myDiv").remove("span"); //将id为myDiv的元素内的所有span元素移除
    
    ·复制节点
    $("#myDiv span").click( function(){ //点击id为myDiv的元素内的span元素,触发click事件
        $(this).clone().appendTo("#myDiv"); //将span元素克隆,然后再添加到id为myDiv的元素内
        $(this).clone(true).appendTo("#myDiv"); //如果clone传入true参数,表示同时复制事件
    })
    
    ·替换节点
    $("p").replaceWith("<strong>您好</strong>"); //将所有p元素替换成后者 <p>您好</p> --> <strong>您好</strong>
    $("<strong>您好</strong>").replaceAll("p"); //倒过来写,同上
    
    ·包裹节点
    $("strong").wrap("<b></b>"); //用b元素把所有strong元素单独包裹起来 <b><strong>您好</strong></b><b><strong>您好</strong></b>
    $("strong").wrapAll("<b></b>"); //用b元素把所有strong元素全部包裹起来 <b><strong>您好</strong><strong>您好</strong></b>
    $("strong").wrapInner("<b></b>"); //把b元素包裹在strong元素内 <strong><b>您好</b></strong>
    
    ·属性操作
    var txt = $("#myDiv").arrt("title"); //获取id为myDiv的元素的title属性
    $("#myDiv").attr("title","我是标题内容"); //设置id为myDiv的元素的title属性的值
    $("#myDiv").attr({"title":"我是标题内容", "alt":"我还是标题"); //一次性设置多个属性的值
    $("#myDiv").removeArrt("alt"); //移除id为myDiv的元素的title属性
    
    ·样式操作
    var txt = $("#myDiv").arrt("class"); //获取id为myDiv的元素的样式
    $("#myDiv").attr("class","myClass"); //设置id为myDiv的元素的样式
    $("#myDiv").addClass("other"); //在id为myDiv的元素中追加样式
    $("#myDiv").removeClass("other"); //在id为myDiv的元素中移除other样式
    $("#myDiv").removeClass("myClass other"); //在id为myDiv的元素中移除myClass和other多个样式
    $("#myDiv").removeClass(); //在id为myDiv的元素中移除所有样式
    $("#myDiv").toggleClass("other"); //切换样式,在有other样式和没other样式之间切换
    $("#myDiv").hasClass("other"); //判断是否有other样式
    
    ·设置和获取HTML、文本和值
    alert( $("#myDiv").html() ); //获取id为myDiv的元素的HTML代码(相当于innerHTML)
    $("#myDiv").html("<span>hello</span>"); //设置id为myDiv的元素的HTML代码
    
    alert( $("#myDiv").text() ); //获取id为myDiv的元素的HTML代码(相当于innerText)
    $("#myDiv").text("hello"); //设置id为myDiv的元素的HTML代码
    
    alert( $("#myInput").val() ); //获取id为myDiv的元素的value值(支持文本框、下拉框、单选框、复选框等)
    $("#myInput").val("hello"); //设置id为myDiv的元素的value值(下拉框、单选框、复选框带有选中效果)
    
    ·遍历节点
    var $cList = $("#myDiv").children(); //获取id为myDiv的元素的子元素(只考虑子元素,不考虑后代元素)
    var $sNext = $("#myDiv").next(); //获取id为myDiv的元素的下一个同辈元素
    var $sPrev = $("#myDiv").prev(); //获取id为myDiv的元素的上一个同辈元素
    var $sSibl = $("#myDiv").siblings(); //获取id为myDiv的元素的所有同辈元素
    var $pClos = $("#myDiv").closest("span"); //获取id为myDiv的元素本身开始,最接近的span元素(向上查找)
    
    ·CSS-DOM操作
    $("#myDiv").css("color"); //获取id为myDiv的元素的color样式的值
    $("#myDiv").css("color", "blue"); //设置id为myDiv的元素的color样式的值
    $("#myDiv").css({"color":"blue", "fontSize":"12px"}); //设置id为myDiv的元素的color样式的值(多个)
    
    $("#myDiv").css("opacity", "0.5"); //设置id为myDiv的元素的透明度(兼容浏览器)
    
    $("#myDiv").css("height"); //获取id为myDiv的元素的高度(单位:px,兼容浏览器)
    $("#myDiv").height(); //同上(实际高度)
    
    $("#myDiv").css("width"); //获取id为myDiv的元素的宽度(单位:px,兼容浏览器)
    $("#myDiv").width(); //同上(实际宽度)
    
    var offset = $("#myDiv").offset(); //获取id为myDiv的元素在当前窗口的相对偏移量
    alert( offset.top + "|" + offset.left );
    
    var offset = $("#myDiv").position(); //获取id为myDiv的元素相对于最近一个position设置为relative或absolute的父元素的相对偏移量
    alert( offset.top + "|" + offset.left );
    
    $("#txtArea").scrollTop(); //获取id为txtArea的元素滚动条距离顶端的距离
    $("#txtArea").scrollLeft(); //获取id为txtArea的元素滚动条距离左侧的距离
    $("#txtArea").scrollTop(100); //设置id为txtArea的元素滚动条距离顶端的距离
    $("#txtArea").scrollLeft(100); //设置id为txtArea的元素滚动条距离左侧的距离


文章评论