第八节(jQuery的获取、设置、添加、删除、css()、尺寸)
jQuery 拥有可操作 HTML 元素和属性的强大方法 一. jQuery DOM(文档对象模型) 操作 jQuery 提供一系列与 DOM (Document Object Model)相关的方法,访问和操作元素和属性变得很容易 DOM 定义访问 HTML 和 XML 文档的标准 W3C 文档对象模型独立于平台和语言的界面,允许程序和脚本动态访问和更新文档的内容、结构以及样式 获得内容 - text()、html() 以及 val() text() - 设置或返回所选元素的文本内容 html() - 设置或返回所选元素的内容(包括 HTML 标记) val() - 设置或返回表单字段的值 获取属性 - attr() jQuery attr() 方法用于获取属性值 <body> <p class="text">我是一个段落文本</p> <p>我是一个p标签</p> <p></p> <p></p> <p></p> <p></p> <p></p> <p></p> <script type="text/javascript" src="js/jquery-1.11.1.min.js"></script> <script type="text/javascript"> // 返回p元素的文本内容<取值> // var text = $(".text").text(); // 设置所有 p 元素的文本内容 // var p = $("p").text("其实ta是个美女 !"); // 使用函数来设置所有匹配元素的文本内容 $("p").text(function(i,h){ return "这个 p 元素的 index 是:" + i+"========="+h; }); </script> </body> /////////////////////////////////////////////////////////// <body> <div> <p> 中山学院Ming ! </p> </div> <div>我是Ming !</div> <div>我是Ming 2</div> <div>我是Ming 3</div> <div>我是Ming 4</div> <div>我是Ming 5</div> <div>我是Ming 6</div> <div>我是Ming 7</div> <div>我是Ming 8</div> <div>我是Ming 9</div> <div>我是Ming 10</div> <div>我是Ming 11</div> <script type="text/javascript" src="js/jquery-1.11.1.min.js"></script> <script type="text/javascript"> // 获取div元素中的 标签+文本 // var html = $("div").html(); // 获取div元素中的 文本 // var text = $("div").text(); // 设置div元素中的html内容 // $("div").html("<div style='width:300px;height:100px;background:red;'>中山学院</div>"); $("div").html(function(i,h){ return "这是利用html()方法设置 div内容"+i+"-----------"+h; }); </script> </body> ///////////////////////////////////////////////////////////////////// <body> <input type="text" class="items" value="请输入用户名..."/> <input type="text" class="items" value="Allen" /> <script type="text/javascript" src="js/jquery-1.11.1.min.js"></script> <script type="text/javascript"> // 获取文本框中的值 // var val = $("input").val(); // 设定文本框的值 // $("input").val("ming"); // 设定文本框的值 $('input:text.items').val(function() { return this.value + ' ' + this.className; }); // alert(val); </script> </body> //////////////////////////////////////////////////////////////////// <body> <img ming="太帅了" class="logo" src="http://soft.tanzhouedu.com/images/logo.png" alt="中山学院" width="215" height="66" /> <script type="text/javascript" src="js/jquery-1.11.1.min.js"></script> <script type="text/javascript"> // 返回文档中所有图像的src属性值。 // var val = $("img").attr("src"); // 为所有图像设置src和alt属性(多个图片或属性) $("img").attr({src:"http://static.youku.com/index/img/header/yklogo.png",alt:"优酷",width:"140",height:"50"}); // 为图片设置src属性 $(".logo").attr("src","http://gtms01.alicdn.com/tps/i1/TB1.lRWGXXXXXblXpXXGI4UIXXX-250-100.gif"); </script> </body>
通过 jQuery,可以很容易地添加新元素/内容 添加新的 HTML 内容 append() - 在被选元素的结尾插入内容 prepend() - 在被选元素的开头插入内容 after() - 在被选元素之后插入内容 before() - 在被选元素之前插入内容 <body> <p>one</p><span>ming 依然还是那么帅 !</span> <p>two</p> <div>prepend - 1</div> <div>prepend - 2</div> <b class="txt">一直都是小弟</b> <b class="txt">我已不做大哥好多年</b> <script type="text/javascript" src="js/jquery-1.11.1.min.js"></script> <script type="text/javascript"> // 在每一行文字后边追加内容 // $("p").append("<span style='color:red;'>我是Ming !</span>"); // 将一个DOM元素前置入所有段落 // $("p").prepend("<span style='color:red;'>我是Ming !</span>"); //向所有段落中前置一个jQuery对象(类似于一个DOM元素数组)。 // $("p").prepend($("span")); // 将一个DOM元素前置入所有段落 $("div").prepend($(".txt")[0]); </script> </body>
通过 jQuery,可以很容易地删除已有的 HTML 元素 删除元素/内容 remove() - 删除被选元素(及其子元素) empty() - 从被选元素中删除子元素 <body> <p>我是一个小苹果 !<span class="txt">太帅了!</span></p> 小呀小苹果 <script type="text/javascript" src="js/jquery-1.11.1.min.js"></script> <script type="text/javascript"> // $("p").remove(); // $("p span").remove(".txt"); // empty清空(把所有段落的子元素(包括文本节点)删除) $("p").empty(); </script> </body>
jQuery 操作 CSS addClass() - 向被选元素添加一个或多个类 removeClass() - 从被选元素删除一个或多个类 toggleClass() - 对被选元素进行添加/删除类的切换操作 css() - 设置或返回样式属性 <style type="text/css"> *{margin:0;padding:0;} body{font-size:12px;font-family:"微软雅黑";color:#666;} ul li{border:1px solid red;float:left;list-style:none;line-height:30px; padding:0 20px 0 20px; } /* ul li:hover{background:red;color:#fff;} */ .sel{background:red;color:#fff;} </style> <body> <ul> <li>javaVIP</li> <li>SEO</li> <li>网络营销</li> <li>淘宝</li> </ul> <script type="text/javascript" src="js/jquery-1.11.1.min.js"></script> <script type="text/javascript"> // addClass() , removeClass(); /*$("ul li").hover(function(){ $(this).addClass("sel"); },function(){ $(this).removeClass("sel"); }); */ // 如果存在(不存在)就删除(添加)一个类 $("ul li").hover(function(){ $(this).toggleClass("sel"); }); </script> </body>
通过 jQuery,很容易处理元素和浏览器窗口的尺寸 一. 尺寸方法 width() 方法设置或返回元素的宽度(不包括内边距、边框或外边距) height() 方法设置或返回元素的高度(不包括内边距、边框或外边距) innerWidth() 方法返回元素的宽度(包括内边距) innerHeight() 方法返回元素的高度(包括内边距) outerWidth() 方法返回元素的宽度(包括内边距和边框) outerHeight() 方法返回元素的高度(包括内边距和边框) <style type="text/css"> *{margin:0;padding:0;} div{width:100px;height:100px;background:#690;border:10px solid red;padding:20px;} .one{width:100px;height:100px;background:#FC0;} </style> <body> <div></div> <div class="one"></div> <div></div> <input type="button" value="点击变大" id="btn"/> <script type="text/javascript" src="js/jquery-1.11.1.min.js"></script> <script type="text/javascript"> // 获取第一段的宽 var width = $("div").width(); var height = $("div").height(); // alert("width:"+width+" ; height:"+height); // 10 px = 1em // $(".one").width(300); /* $("#btn").click(function(){ $(".one").width(function(i,w){ return w*1.2; }); }); */ // 获取第一div内部区域高度innerHeight var p = $("div:first"); // alert(p.innerHeight()); //$("div:last").text( "innerHeight:" + p.innerHeight() ); // 获取第一段落外部宽度outerWidth() var p = $("div:first"); alert(p.outerWidth()); var width = $("div").width(); alert(width); </script> </body>