JQuery选择器和DOM的操作-入门学习

嘿嘿,今天学习了JQuery,前面的一周都在学习javascript,今天学习了JQuery,虽然javascript的类库有很多个,例如:Prototype,Dojo,JQuery等,javascript库都有着各自的优缺点,同时也有各自的支持者和反对者,但是从JQuery诞生那天起,JQuery已经从其他javascript库中脱颖而出,称为web开发人员的最佳选择,所以这也是我学习JQuery的原因。好啦,总结一下今天学习的JQuery的选择器和对DOM的初步操作。

一.JavaScript与JQuery的区别

从上面我们区别了javascript的onlaod和jquery的ready方法我们就可以看到使用起来jquery是便利之处,可以让我们写的代码看起来没有那样的繁琐,所以这就是jquery受欢迎的原因之一。

二.使用javascript实现的一些功能

<script>
        window.onload = function () {
            //var pnodes = document.getElementsByTagName("p");     //单击事件实现弹出innerHTML的值
            //for (var i = 0; i < pnodes.length; i++) {
            //    pnodes[i].onclick = function () {
            //        alert(this.innerHTML);
            //    };
            //};

            //var tablenodes = document.getElementById("tb");     //隔行变色
            //var trnodes = tablenodes.getElementsByTagName("tr");
            //for (var i = 0; i < trnodes.length; i++) {
            //    if (i % 2 == 0) {                   //根据索引判断是奇数还是偶数
            //       trnodes[i].style.backgroundColor="green";
            //    };
            //};

            document.getElementById("btn").onclick = function () {
                var array = new Array();
                var checknodes = document.getElementsByName("check");
                for (var i = 0; i < checknodes.length; i++) {
                    if (checknodes[i].checked) {       //判断该项是否被选中
                        array.push(checknodes[i]);      //如果是checked则放进数组中
                    }
                }
                alert("你选中了"+array.length+"个元素");  //使用length可以判断数组的长度
            };
        };
    </script>
<body>
    <p>测试1</p>
    <p>测试2</p>
    <table id="tb">
        <tr><td>1</td><td>1</td></tr>
        <tr><td>2</td><td>2</td></tr>
        <tr><td>3</td><td>3</td></tr>
        <tr><td>4</td><td>4</td></tr>
        <tr><td>5</td><td>5</td></tr>
        <tr> <td>6</td><td>6</td></tr>
    </table>
    <form>
        <input type="checkbox" name="check" value="1 " checked="checked" /><br />
        <input type="checkbox" name="check" value="2 " /><br />
        <input type="checkbox" name="check" value="3 " checked="checked" /><br />
        <input type="button" id="btn" name="name" value="你选中的个数 " />
    </form>
</body>

写这些代码只是想和下面写的使用jquery写的代码对比一下,然后能够跟好的了解jquery,我想如果javascript学好啦,然后学习起来jquery应该是简单多啦吧,其实在javascript中感觉存在很多的浏览器兼容问题,要考虑浏览器是否兼容IE、Firefox等的问题,而在jquery中针对这个问题一般情况下不需要考虑很多,兼容性很好的。下面就介绍Jquery的选择器:基本选择器,层次选择器,过滤选择器,属性选择器和表单选择器。

三.基本选择器

<script src="script/jquery-1.7.1.min.js"></script>
    <script>
        //--------------------id选择器------------------
        //$(function () {
        //    alert($("#divid").text());
        //})

        //--------------------遍历集合------------------
        //$(function () {                      //在jquery中没有for的遍历,要使用each来遍历输出
        //    $(".div").each(function () {
        //        alert($(this).text());
        //    });
        //})

        //--------------------标签选择器------------------
        //$(function () {
        //    $("div,span").each(function () {          //多个标签div和span
        //        alert($(this).text());
        //    });
        //})

        //-------------------*选择器-------------------------
        $(function () {
            $("*").each(function () {              //输出所有的文本信息
                alert($(this).text());
            });
        })
    </script>
<body>
    <div id="divid">123456</div>
    <div class="div">123</div>
    <div class="div">234</div>
    <span class="div">456</span>
</body>

基本选择器是jquery中最常用的选择器,也是最简单的选择器,它通过id、class和标签名来查找DOM元素,在这里需要注意的是:id名称只能使用一次,而class可以多次使用,另外,基本选择器也可为称为CSS选择器,说的就是我们在对html元素在CSS中设置其样式时间使用的方法是一样的,嘿嘿,当然,最后一个选取所有的文本信息的是在这个存在的。

四.层次选择器

<script src="script/jquery-1.7.1.min.js"></script>
    <script>         //层次选择器
        //--------------------后代选择器---------------
        //$(function () {
        //    $("div span").each(function () {          //仅仅输出div的下一节点以及子节点
        //        alert($(this).text());
        //    });
        //});

        //--------------------直接后代选择器----------------
        //$(function () {
        //    $("div>span").each(function () {          //仅仅输出div的下一节点
        //        alert($(this).text());
        //    });
        //});

        //----------------------兄弟选择器-------------------
        //$(function () {
        //    $("#d2+div").each(function () {          //输出div的下一节点
        //        alert($(this).text());
        //    });
        //});

        $(function () {
            $("#d2~div").each(function () {          //输出div的下部分的所有
                alert($(this).text());
            });
        });
    </script>
<body>
    <div>
        <span>span1<span>span11</span></span><span>span2</span>
        <div id="d1">div1</div><div id="d2">div2 </div>
        <div id="d3">div3</div><div id="d4">div4</div>
    </div>
</body>

如果想通过DOM元素之间的的关系来获取特定元素,例如:后代元素,子元素,相邻元素或者兄弟元素等,那么层次选择就是很好的选择。

五.过滤选择器

<script>
        //$(function () {
        //    alert($("li:first").text());          //输出第一个li元素的文本信息
        //});

        //$(function () {
        //    alert($("li:last").text());          //输出最后一个li元素的文本信息
        //});

        //使用索引时间可以这样:
        //$(function () {
        //    alert($($("li")[0]).text());         //$("li")[0]为html中的一个元素,需要js转换为jquery
        //})

        //$(function () {
        //    alert($("li:not(.li)").text());          //输出除了classname为li的元素全部输出
        //});

        //$(function () {
        //    alert($("li:even").text());          //根据索引判断,输出索引值为偶数的文本信息
        //});

        //$(function () {
        //    alert($("li:odd").text());          //根据索引判断,输出索引值为奇数的文本信息
        //});

        //$(function () {
        //    alert($("li:eq(2)").text());          //根据索引判断,输出索引值为1文本信息
        //});
        //$(function () {
        //    alert($("li:gt(2)").text());          //根据索引判断,输出索引值大于2的文本信息
        //});
        //$(function () {
        //    alert($("li:lt(2)").text());          //根据索引判断,输出索引值小于2的文本信息
        //});
    </script>
<body>
    <ul>
        <li>1</li><li class="li">2</li><li>3</li><li>4</li><li>5</li><li>6</li>
    </ul>
</body>
<script src="script/jquery-1.7.1.min.js"></script>
    <script>
        $(function () {
            $(":hidden").each(function () {    //寻找所有的不可看到的元素,在这里主要是把html中的所有不可见的元素输出了,例如:head等
               alert($(this).val());            //在输出值的时间input标签的使用val即可
            })

            $(":vistable").each(function () {   //寻找可见的元素的值
                alert($(this).val)
            })
        });
    </script>
<body>
    <form>
    <input type="text" value="123" /><br />
    <input type="hidden" name="hidden" value="456 " /><br />
    <div style="display:none">div</div>
</form>
</body>

过滤选择器主要是通过特定的过滤原则来筛选出特定的DOM元素,锅炉规则和CSS中的伪类选择器语法相同,即选择器都是以:开头;按照不同的分类规则就分为上面的几种:基本过滤、内容过滤、可见性过滤、属性过滤、子元素过滤和表单对象元素过滤筛选器。

六.属性过滤器

<script>   //属性选择器
        //$(function () {
        //    $("div[id]").each(function () {
        //        alert($(this).text());        //寻找包含id这个属性的div元素的文本信息
        //    });
        //});
        //$(function () {
        //    alert($("div[id=div1]").text());  //寻找div元素中id为div1的文本信息
        //});
            //$(function () {
            //    $("div[div!=div1]").each(function () {  //找出除了div元素中id为div1的其他的所有元素的文本信息
            //        alert($(this).text())
            //    });
            //});

            //$(function () {
            //    $("div[id~=d]").each(function () {  //找出除了div元素中id以d开头的所有元素的文本信息
            //        alert($(this).text());
            //    });
            //});

        $(function () {
            $("div[id$=v]").each(function () {   //找出div元素中id以v结尾的所有元素的文本信息
                alert($(this).text());
            });
        });
    </script>
<body>
    <div>div0</div><div id="div1">div1</div><div id="div2">div2</div>
    <div id="div3">div3</div><div id="diav">div4</div><div id="dibv">div5</div>
</body>

属性选择器主要是通过元素的属性获取相应的元素。

七.表单对象过滤器

<script src="script/jquery-1.7.1.min.js"></script>
    <script>  //表单对象选择器
        $(function () {
            //$(":disabled").each(function () {           //disabled是说明此元素不可用,enabled时可用的,在这里查找form表单元素中不可用的元素的文本信息
            //    alert($(this).val());
            //});

            //$(":enabled").each(function () {           //查找form表单元素中可用的元素的文本信息,未写出来的则默认为enabled
            //    alert($(this).val());
            //});

            //$("input:checked").each(function () {      //查找input元素中的属性checked="checked"的所有元素
            //    alert($(this).val());
            //});

            $(function () {
                $(":selected").each(function () {       //下拉列表中的选中的项的文本信息,即select元素的属性selected="selected"
                    alert($(this).text());
                });
            });
        });
    </script>
<body>
    <form>
    <input type="text" name="name" value="123 "  disabled="disabled"/><br />
    <input type="checkbox" name="name" value="表单1 " checked="checked" /><br />
    <input type="checkbox" name="name" value="表单2 " checked="checked" />
    <input type="radio" name="name" value="radio" checked="checked" />
    <select>
        <option value="0">北京</option>
           <option value="1" selected="selected">上海</option>
           <option value="2">广州</option>
    </select>
        </form>
</body>

表单选择过滤筛选器主要是针对所选择表单元素进行过滤,录入上面的选择所选的下拉框、多选框等。

八.对DOM的操作

<script>
        $(function () {
            //var linode = $("ul li:eq(0)").text();
            //alert(linode);        //获取ul的第一个子节点的文本信息

            //var pnode = $("p").attr("title");  //获取p元素的属性title的属性值使用的是attr方法
            //alert(pnode);//$(function () {
            //    var lifirstnode = $("<li title=‘mango‘> <span>mango</span></li>");
            //    var lisecondnode = $("<li>watermelon</li>");
            //   $("p").append(lifirstnode).append(lisecondnode);  //创建新元素,可以添加属性,在添加时间也可以一次添加多个
            //});
//$("ul li:last").remove();  //删除最后一个li元素
            //$("ul li").remove(".apple");  //删除最后一个li元素
//var appleclone = $("ul li:last").clone();  //复制li元素的最后一个元素
            //var appleclone1 = $(".banana").clone();      //复制classname为banana的元素
            //$("ul").append(appleclone);
            //$("ul").append(appleclone1);
//$("p").wrap("<b></b>");       //在p元素外面添加b元素使得文本信息加粗即可

            //----------------------添加与删除属性值------------
            //$("#titleid").attr("class", "pclass");        //给p元素添加一个class的属性,其属性的值为pclass

            //$("#titleid").removeAttr("class");       //删除p元素的class的属性
        });
    </script>
<body>
    <p title="what is your favorite fruit?" id="titleid">what is your favorite fruit?</p>
    <ul>
        <li>orange</li>
        <li class="banana">banana</li>
        <li class="apple">apple</li>
    </ul>
</body>

在上面刚学习完jquery选择器,在这里我们就是用上啦,可以拿来练习练习,查元素的节点首先我们通过jquery选择器找到需要的元素以后,就可以使用attr()来获取各种属性值,接下来的实例分别为创建节点、插入节点、删除节点、复制节点和包裹节点,另外还有最后一个就是对属性值的操作,在sttr方法中存在两个参数,一个为属性,另一个则为设置的属性值。

九.子节点的操作

    <script>
        $(function () {
            //$("#div").children().each(function () {
            //    alert($(this).text());   //获取div的子节点的文本信息,寻找子节点使用的是.children()
            //});

            //$("div div:eq(2)").next().each(function () {
            //alert($(this).text());       //获取索引为2的上一个兄弟节点(4)
            //});

            //$("div div:eq(2)").nextAll().each(function () {
            //    alert($(this).text())        //获取索引为2的上面的所有兄弟节点(4,5,6,7,8)
            //});

            //$("div div:eq(2)").prev().each(function () {
            //alert($(this).text())            //获取索引为2的下一个兄弟节点(2)
            //});

            $("div div:eq(2)").prevAll().each(function () {
            alert($(this).text())             //获取索引为2的下面的所有兄弟节点(2,1)
            });
        });
    </script>
<body>
 <div id="div">
     <div>1</div><div>2</div><div>3</div><div>4</div><div>5</div><div>6</div><div>7</div><div>8</div>
</div>
</body>

上面的方法都是多节点的操作,即遍历输出,好啦,今天就写到这里,学习了Jquery明显感觉前面写的javascript代码好笨重,但是javascript也有它存在特色,嘿嘿,不能仅仅只从代码上判断一种语言,只是我学习的太浅显,明显没有看到它的奥妙罢啦,继续练习,加油加油!

时间: 2024-10-21 03:14:22

JQuery选择器和DOM的操作-入门学习的相关文章

jQuery 选择器和dom操作

JQuery选择器 1.基本选择器 基本选择器是JQuery中最常用的选择器,也是最简单的选择器,它通过元素id.class 和标签名来查找DOM元素.这个非常重要,下面的内容都是以此为基础,逐级提高的. 1).“$(“#id”)”,获取id指定的元素,id是全局唯一的,所以它只有一个成员. 2).“$(“.class”)”,获取class指定的元素,不同的元素可以具有相同的class属性,所以它可能具有多个成员. 3).“$(“element”)”,获取element(元素名,比如div.ta

jQuery选择器和DOM操作——《锋利的jQuery》(第2版)读书笔记1

第1章 认识jQuery jQuery有以下优势: 轻量级: 强大的选择器: 出色的DOM操作的封装: 可靠的事件处理机制: 完善的Ajax: 不污染顶级变量: 出色的浏览器兼容性: 链式操作方式: 隐式迭代: 行为层与结构层的分离: 丰富的插件支持: 完善的文档: 开源. jQuery对象就是通过jQuery包装DOM对象后产生的对象. 在jQuery对象中无法使用DOM对象的任何方法.同样,DOM对象也不能使用jQuery里的方法. jQuery对象和DOM对象的相互转换        如果

JQuery选择器学习系列 【赞】

从零开始学习jQuery (二) 万能的选择器 本系列文章导航 从零开始学习jQuery (一) 开天辟地入门篇 从零开始学习jQuery (二) 万能的选择器 从零开始学习jQuery (三) 管理jQuery包装集 从零开始学习jQuery (四) 使用jQuery操作元素的属性与样式 从零开始学习jQuery (五) 事件与事件对象 从零开始学习jQuery (六) jQuery中的Ajax 从零开始学习jQuery (七) jQuery动画-让页面动起来! 从零开始学习jQuery (八

js day43 Jquery入门(回顾js,Jquery选择器,dom操作)

1     Javascript回顾 问题:Javascript能做什么? 1. 获取操作dom <style> .aa{ background:red} .bb{ background:blue} </style> <body> <div id="dv" title="提示信息" class="aa">AAAAAAAAA</div> <button onclick="f

JQuery总结:选择器归纳、DOM遍历和事件处理、DOM完全操作和动画

JQuery总结一:选择器归纳 1.基本选择器 选择符 匹配元素 * 所有元素 id 给定ID的元素 element 给定类型的所有元素 .class 给定类的所有元素 a,b 与a或b匹配的元素 a b a的后代元素中与b匹配的元素 a>b a的直接子元素中与b匹配的元素 a+b a的直接同辈元素中与b匹配的元素 a~b a的同辈元素中与b匹配的元素 2.位置选择器 选择符 匹配元素 a b:nth-child(index) a的子元素中,第index个与b匹配的元素(从1开始计数) a b:

jQuery入门、jQuery选择器、jQuery操作

一.什么是jQuery及如何使用 1.1 jQuery 简介 jQuery是一个兼容多浏览器的javascript函数库(把我们常用的一些功能进行了封装,方便我们来调用,提高我们的开发效率.),核心理念是write less,do more(写得更少,做得更多) 1.2 jQuery 和 Js 的区别 Javascript是一门编程语言,我们用它来编写客户端浏览器脚本.jQuery是javascript的一个库(框架),包含多个可重用的函数,用来辅助我们简化javascript开发. 注意:jQ

jQuery基础学习(三)&mdash;jQuery中的DOM操作

一.查找节点      查找属性节点: 通过jQuery的选择器来完成.      操作属性节点: 调用jQuery对象的attr()来获取它的属性值.      操作文本节点: 通过text()方法. //1.操作文本节点:通过jQuery的text()方法 alert($("#bj").text()); $("#bj").text("南京"); alert($("#bj").text()); //2.操作属性节点 //注:

Jquery基础之DOM操作

 一.jQuery对象与Dom对象的区别 一直以来对于通过jQuery方式获取的对象使不能直接使用JavaScript的一些方法的,开始的时候不理解,现在此案知道,原来jQuery获得的对象并不和我们平时使用getElementById获得的对象是一样的对象.所以一些新手就很迷惑,为什么${”#Element”}不能直接innerHTML,这就是原因所在,解决方式请看下文. jQuery对象与dom对象的转换只有jquery对象才能使用jquery定义的方法.注意dom对象和jquery对象是有

Jquerry:jquery中的DOM操作&lt;一&gt;

之前两天学习了Jquery强大的选择器,今天学习了一部分Jquery对DOM的操作,下面我将把自己今天的成果分享给大家,那些菜鸟们,你们是否需要巩固之前所学? 首先需要知道,DOM操作分为3个方面:DOM Core.HTML-DOM.CSS-DOM.我们很多情况下用到的getElementById().getElementByTagName().getAttribute()和setAttribute()等方法都是DOM Core的组成部分.而document.forms(获取表单对象).elem