DOM操作和节点操作

一 样式操作

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .divItem{
            background: #000;
            color: #ffffff;
        }
        .divItem1{
            background: red;
            color: black;
        }
    </style>
    <script src="js/jquery-1.11.1.min.js"></script>
    <script>
        $(document).ready(function () {
            /**
             * 给所有的li元素添加样式
             * 给选定的元素添加类样式,注意:样式名字没有    点.
             * */
            $("li").addClass("divItem");
            /**
            * 给指定的元素删除某种样式
             * 有参数移除指定样式,没有参数移除所有样式
            * */
            $("li").eq(2).removeClass("divItem");
            /**
             *切换
             * */
            $("button:first").click(function () {
               $("li").eq(1).toggleClass("divItem1");
            });
            /**
             * 判断有没有样式
             * */
            $("button:last").click(function () {
               var st=$("li").eq(0).hasClass("divItem");
               //获取返回值类型,并输出
                // alert(st);
               if (st == true){
                   $("li").eq(0).removeClass("divItem");
               }else {
                   $("li").eq(0).addClass("divItem1")
               }
            });

        });
    </script>
</head>
<body>
<button>切换</button>
<button>判断</button>
<ul>
    <li>111111</li>
    <li>222222</li>
    <li>333333</li>
    <li>444444</li>
    <li>555555</li>
    <li>666666</li>
    <li>777777</li>
    <li>888888</li>


</ul>
</body>
</html>

总结
添加样式

$("li").addClass("divItem");

移除样式

$("li").eq(2).removeClass("divItem");

判断有无样式

$("li").eq(0).hasClass("divItem"); 返回值为布尔类型

二 tab切换栏案例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style type="text/css">
        *{
            padding: 0px;
            margin: 0px;
            border: 0px;
            list-style: none;
        }
        .wrapper{
            width: 1000px;
            height: 475px;
            margin: 100px auto ;
        }
        .tab{
            border: 1px solid #dddddd;
            height: 36px;
            width: 320px;
            border-bottom: 0px;
        }
        .wrapper li{
            float: left;
            width: 80px;
            height: 34px;
            line-height: 34px;
            text-align: center;
            cursor: pointer;
            border-top:4px solid #ffffff;
            position: relative;
        }
        .products{
            width: 1002px;
            border:1px solid #ddd;
            height: 476px;
        }
        .products .main{
            float: left;
            display: none;
        }
        .products .main.selected{
            display: block;
        }
        .tab li.active{
            border-color: red;
            border-bottom: 0;
        }

    </style>
    <script type="text/javascript" src="js/jquery-1.11.1.min.js"></script>
    <script type="text/javascript">
        $(function () {
           $(".tab li").mouseenter(function () {
               //给当前元素添加active这个样式
               //给当前这个元素的所有兄弟元素移除active这个样式  siblings
               $(this).addClass("active").siblings().removeClass("active");
               //让下面的div内容,根据上面tab栏菜单展示相应的内容
               //index()获取当前元素序号
               var index=$(this).index();
               $(".products div").eq(index).addClass("selected").siblings().removeClass("selected");
           }) ;
        });
    </script>
</head>
<body>
<div class="wrapper">
    <ul class="tab">
        <li>国际大牌</li>
        <li>国妆名牌</li>
        <li>清洁用品</li>
        <li>男士精品</li>
    </ul>
    <div class="products">
        <div class="main selected">
        <a href="#">![](imgs/guojidapai.jpg)</a>
        </div>
        <div class="main">
        <a href="#">![](imgs/guozhuangmingpin.jpg)</a>
        </div>
        <div class="main">
        <a href="#">![](imgs/qingjieyongpin.jpg)</a>
        </div>
        <div class="main">
        <a href="#">![](imgs/nanshijingpin.jpg)</a>
        </div>
    </div>
</div>
</body>
</html>

总结
1 样式书写

  • div布局
  • 导航栏,内容书写
  • 清空样式
  • div大小定位
  • 导航栏边框设置,大小,颜色,边框宽度,去掉下边框
  • 导航栏样式设置,左浮动,大小,文字行高,文字位置,光标样式,上边距以及颜色,定位
  • 设置内容div的大小,边框宽度以及颜色
  • 设置子内容div属性为左浮动,且块级不显示
  • 设置主内容页属性为块级显示(元素前后会带有换行符)
    2 jQuery实现效果
$(function () {
           $(".tab li").mouseenter(function () {
               //给当前元素添加active这个样式
               //给当前这个元素的所有兄弟元素移除active这个样式  siblings
               $(this).addClass("active").siblings().removeClass("active");
               //让下面的div内容,根据上面tab栏菜单展示相应的内容
               //index()获取当前元素序号
               var index=$(this).index();
               $(".products div").eq(index).addClass("selected").siblings().removeClass("selected");
           }) ;
        });

三 常用DOM操作(属性和值的内容)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style type="text/css">
        p{
            background: gray;
            color: red;
        }
    </style>
    <script type="text/javascript" src="js/jquery-1.11.1.min.js"></script>
    <script type="text/javascript">
        $(function () {
           //设置属性
            $("input[type='button']").eq(0).click(function () {
               $(this).attr("title","动态设置属性");
            });
            //获取属性
            $("input[type='button']").eq(1).click(function () {
               var st=$("input[type='button']").eq(0).attr("title");
               alert(st);
            });
            //删除属性
            $("input[type='button']").eq(2).click(function () {
               $("input[type='button']").eq(0).removeAttr("title");
            });
            //设置值
            $("input[type='button']").eq(3).click(function () {
               $("#txt").val("动态设置的值");
            });
            //获取值
            $("input[type='button']").eq(4).click(function () {
                var txt1=$("#txt").val();
                alert(txt1);
            });
            //设置html
            $("input[type='button']").eq(5).click(function () {
                //$("div").html("我是html内容");
                $("div").html("<p>我是p元素</p>");
            });
            //获取html
            $("input[type='button']").eq(6).click(function () {
                alert($("div").html());
            });
            //设置文本内容
            $("input[type='button']").eq(7).click(function () {
                $("div").text("动态创建的文本内容");
            });
            //获取文本内容
            $("input[type='button']").eq(8).click(function () {
                alert($("div").text());
            });
        });
    </script>
</head>
<body>
<input type="button" value="设置属性">
<input type="button" value="获取属性">
<input type="button" value="删除属性">
<input type="button" value="设置值">
<input type="button" value="获取值">
<input type="button" value="设置html">
<input type="button" value="获取html">
<input type="button" value="设置文本内容">
<input type="button" value="获取文本内容">
<div>
    <input type="text" id="txt">
</div>
</body>
</html>

总结

设置属性: $(this).attr("title","动态设置属性");
获取属性:var st=$("input[type='button']").eq(0).attr("title");
删除属性: $("input[type='button']").eq(0).removeAttr("title");
设置值:$("#txt").val("动态设置的值");
获取值:var txt1=$("#txt").val();
设置html: $("div").html("<p>我是p元素</p>");
获取html:alert($("div").html());
设置文本内容:$("div").text("动态创建的文本内容");
获取文本内容:alert($("div").text());

四 节点操作

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript" src="js/jquery-1.11.1.min.js"></script>
    <script type="text/javascript">
        $(function () {
            $("button").eq(0).click(function () {
            //追加节点
           $("div").append("<p>我是动态创建的p元素</p>");
            });

            //把前面这个元素追加给$("div")元素
        $("button").eq(1).click(function () {
            $("<p>我是动态创建的p元素</p>").appendTo($("div"));
            });

        $("button").eq(2).click(function () {
           //把前面这个元素在所有子元素的前面添加一个子元素
            $("div").prepend("<p>我是动态prepend创建的p元素</p>");
            });

        $("button").eq(3).click(function () {
            //把前面这个元素添加给后面这个$("div")元素的所有子元素的前面
            $("<p>我是动态prepend创建的p元素</p>").prependTo($("div"));
            });

        $("button").eq(4).click(function () {
            //往div的后面添加元素,他们是兄弟关系
            $("div").after("<p>我是div后面的p元素</p>");
            });

        $("button").eq(5).click(function () {
           //往div前面添加元素,他们是兄弟关系
            $("div").before("<p>我是div前面的p元素</p>");
            });

        $("button").eq(6).click(function () {
            //把前面的元素放到后面div元素的前面,他们是兄弟节点关系
            $("<p>我在哪?</p>").insertBefore($("div"));
            });

        $("button").eq(7).click(function () {
            //把前面的元素放到后面div元素的后面,他们是兄弟节点关系
            $("<p>我在哪?</p>").insertAfter($("div"));
            });

        $("button").eq(8).click(function () {
            //删除节点
            //$("div").remove();
            $(this).remove();//自杀
            });

        $("button").eq(9).click(function () {
            //清空节点元素
            // $("div").html("");清空子元素  推荐使用方法
            $("div").empty();
            });

        $("button").eq(10).click(function () {
            //复制
            //参数如果为true的话,那么之前的时间也会复制一份
            $("div").append($("p").clone());
            });

        $("button").eq(11).click(function () {
            //包裹元素
            $("span").wrap($("div"));
            });

        $("button").eq(12).click(function () {
            //包裹所有节点
            $("span").wrapAll($("div"));
            });

        $("button").eq(13).click(function () {
            //替换节点
            $("span").replaceWith("#d");
            });

        });
    </script>

</head>
<body>
<button>append 追加</button>
<button>appendTo 追加</button>
<button>prepend 往前面添加节点</button>
<button>prependTo 往前面添加节点</button>
<button>after 往后面添加节点</button>
<button>before 往前面添加节点</button>
<button>insertBefore</button>
<button>insertAfter</button>
<br>
<br>
<button>remove 删除选中元素</button>
<button>empty 清空子元素</button>
<button>clone 复制节点</button>
<button>warp 单个包裹</button>
<button>warpAll 所有包裹在一个node中</button>
<button>replaceWidth 替换</button>

<div>
    <h1>标题标题</h1>
    <h1>标题1标题</h1>
</div>
<p>我是外面的p元素,不是冬天添加的</p>
<span>小小小span
    <h2>小小span</h2>
</span>
<div id="d">
<h1>replaceWidth替换</h1>
</div>
</body>
</html>

append追加节点:

$("div").append("<p>我是动态创建的p元素</p>");

appendTo把前面这个元素追加给$("div")元素:

$("<p>我是动态创建的p元素</p>").appendTo($("div"));

prepend把前面这个元素在所有子元素的前面添加一个子元素:

$("div").prepend("<p>我是动态prepend创建的p元素</p>");

prependTo把前面这个元素添加给后面这个$("div")元素的所有子元素的前面

$("<p>我是动态prepend创建的p元素</p>").prependTo($("div"));

after往div的后面添加元素,他们是兄弟关系

$("div").after("<p>我是div后面的p元素</p>");

before往div前面添加元素,他们是兄弟关系

$("div").before("<p>我是div前面的p元素</p>");

insertBefore把前面的元素放到后面div元素的前面,他们是兄弟节点关系

$("<p>我在哪?</p>").insertBefore($("div"));

insertBefore把前面的元素放到后面div元素的后面,他们是兄弟节点关系

$("<p>我在哪?</p>").insertAfter($("div"));

remove删除节点

//$("div").remove();
$(this).remove();//自杀

empty清空节点元素

// $("div").html("");清空子元素 推荐使用方法
$("div").empty();

clone复制

//参数如果为true的话,那么之前的时间也会复制一份
$("div").append($("p").clone());

wrap包裹元素

$("span").wrap($("div"));

wrapAll包裹所有节点

$("span").wrapAll($("div"));

replaceWith替换节点

$("span").replaceWith("#d");

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,524评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,869评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,813评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,210评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,085评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,117评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,533评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,219评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,487评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,582评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,362评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,218评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,589评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,899评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,176评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,503评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,707评论 2 335

推荐阅读更多精彩内容