1:操作HTML
1.1 获取HTML的内容
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script type="text/javascript" language="javascript" src="jquery-1.7.js"></script>
<script type="text/javascript">
$(document).ready(function() {
var htmlString = $("ul li").html();
alert(htmlString);
});
</script>
</head>
<body>
<ul>
<li><a href="#">北京</a></li>
<li>上海</li>
<li>广州</li>
<li>西安</li>
</ul>
</body>
</html>
1.2 设置HTML的内容
语法格式: html(htmlString);
例子:$("ul li").html("<h3>所有匹配元素的html内容被替换</h3>);
1.3 根据索引设置HTML内容
格式:html(function(index, html));
index为元素在集合中的索引位置,html为原来的HTML值
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script type="text/javascript" language="javascript" src="jquery-1.7.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("ul li").html(function(index, html) {
if(index == 0) {
return "<span style='color: red;'>" + html+ "</span>";
} else {
return "<span style='color: yellow;'>" + html+ "</span>";
}
});
});
</script>
</head>
<body>
<ul>
<li><a href="#">北京</a></li>
<li>上海</li>
<li>广州</li>
<li>西安</li>
</ul>
</body>
</html>
综合案例:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>html()方法</title>
<script language="javascript" src="jquery-1.4.2.min.js"></script>
</head>
<body>
<div>
<fieldset>
<legend>帮助中心</legend>
<div class="faq">
<h3>订阅班级都需要什么?</h3>
<p>1、注册成为窗内网站会员。<br/>
2、会员积分大于订阅班级所需的积分。 </p>
<h3>如何订阅班级?</h3>
<p>1、登录网站。 <br/>
2、进入班级信息页面。<br/>
3、单击【订阅班级】完成订阅。 </p>
</div>
<hr/>
<div id="res"> </div>
</fieldset>
<script type="text/javascript" language="javascript">
$(document).ready(function(){
alert($(".faq").html());
var faq=$(".faq h3").html();
$("#res").html(faq);
$(".faq h3").html("问题描述");
$(".faq p").html("问题解决办法");
$(".faq h3").html(function(index,html){
if(index==0){
return "<u>"+html+"</u>";
}
else{
return "<span style='color:red'>"+html+"</span>";
}
});
});
</script>
</div>
</body>
</html>
2:操作文本
jQuery提供了text()方法来获取或者设置元素的文本内容
2.1 获取文本的内容
text()方法将获得所有匹配元素的内容,返回结果是由所有匹配元素包含的文本内容组合起来的文本。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script type="text/javascript" language="javascript" src="jquery-1.7.js"></script>
<script type="text/javascript">
$(document).ready(function() {
alert($("ul").text());
});
</script>
</head>
<body>
<ul>
<li><a href="#">北京</a></li>
<li>上海</li>
<li>广州</li>
<li>西安</li>
</ul>
</body>
</html>
2.2 设置文本内容
text(textString); 可以设置匹配元素集合中每个元素的文本内容。
text方法在必要时会对textString中的字符串进行转义,以便在HTML文档中正确的呈现字符串的内容。
2.3 根据索引设置文本内容
text(function(index, html));
它返回的文本内容将用于设置每个匹配的元素,index为元素在集合中的索引位置,text为当前元素原来的文本内容。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>text()方法</title>
<script language="javascript" src="jquery-1.4.2.min.js"></script>
<style type="text/css">
#content {
text-align:left;
font-size:16px;
}
#content h1 {
margin:0px;
padding:0px;
color:#006;
font-size:24px;
font-weight:bold;
text-align:center;
}
#content img {
float:left;
padding: 5px;
border: 2px solid #D6D6D6;
margin: 10px;
}
#res {
clear:both;
}
</style>
</head>
<body>
<div id="content">
<h1>C#2008网络大讲堂 视频教程</h1>
<p><img src="csharp.png" title="asfaf" />
<span>C#是随.NET Framework一起发布的一种新语言,是一种崭新的面向对象的编程语言,强调以组件基础的软件开发。不但结合了Visual Basic的简单易用性,同时也提供了Java和C++语言的灵活性和强大功能。C#在.NET Framework构架中扮演着一个重要角色。可以说是Microsoft公司面向下一代互联网软件和服务战略的重要内容,也是编写.NET Framework应用程序的首选。</span>
</p>
</div>
<div id="res"></div>
<script type="text/javascript" language="javascript">
$(document).ready(function(){
var allText=$("#content").text();
$("#res").html(allText);
$("p span").text("<h1>暂时没有合适的说明,请补充。</h1>");
});
</script>
</body>
</html>
3:操作值
val()方法,可以获取和设置表单元素的值,包括文本框、下拉列表框、单选按钮以及复选框等。
3.1 获取元素的值 val()方法
3.2 设置元素的值 val(value)方法
3.3 根据索引设置元素的值 val(function(index, value)); index为元素在集合中的索引,value为当前元素的值
$("input:checkbox").val(function(index, value) {
return "chk_" + $(this).val();
});
综合例子:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>val()方法</title>
<script language="javascript" src="jquery-1.4.2.min.js"></script>
<style type="text/css">
<!--
body {
background-color: #F2F2F2;
font-size: 12px;
color: #000000;
margin:0;
padding:0px;
}
table {
font-family: Geneva, Arial, Helvetica, sans-serif;
font-size: 12px;
color: #000000;
background-color:#FFFFFF;
}
tr th {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 12px;
font-weight: bold;
color: #FFFFFF;
background-color:#00509F;
}
-->
</style>
</head>
<body>
<table width="95%" border="0" cellspacing="2" cellpadding="0" align="center">
<tr>
<td width="65%">
<table width="471" align="center" cellpadding="5" cellspacing="1" >
<tr height=20>
<th width="445" >用 户 调 查 表 单</th>
</tr>
<tr>
<td >用户名:<input type="text" id="nameIpt" value="游客" size="10">
密码: <input type="password" id="passIpt" value="123456" size="10"></td>
</tr>
<tr>
<td>常去网站:
<input type="checkbox" name="chkWebSite" value="csdn">CSDN
<input type="checkbox" name="chkWebSite" value="msdn">MSDN
<input type="checkbox" name="chkWebSite" value="xinwen">新闻网
<input type="checkbox" name="chkWebSite" value="ccw">计世网
<input type="checkbox" name="chkWebSite" value="jiaocheng">教程网</td>
</tr>
<tr>
<td>默认搜索:
<input type="radio" name="rdSearch" value="baidu">baidu
<input type="radio" name="rdSearch" value="google">google
<input type="radio" name="rdSearch" value="yahoo">yahoo
<input type="radio" name="rdSearch" value="msn">MSN</td>
</tr>
<tr>
<td valign="top">掌握技能:
<select name="select" multiple="multiple" id="select1">
<option>前台Web设计</option>
<option>网站优化与推广</option>
<option>ASP.NET网站开发</option>
<option>js客户端编程</option>
<option>XML应用</option>
<option>DIV+CSS</option>
</select>
最想了解的技术:
<select name="select2" id="select2">
<option>jQuery开发</option>
<option>.NET框架</option>
<option>设计模式</option>
<option>sql数据库</option>
<option>网络通信</option>
</select></td>
</tr>
<tr>
<td valign="top">简单描述:<br>
<textarea name="textarea" cols="50" rows="2" id="more">网站:www.itzcn.com</textarea></td>
</tr>
<tr>
<td><input type="submit" id="btnSubmit" value="提交">
<input type="reset" id="btnReset" value="重置"></td>
</tr>
</table>
</td>
<td align="left" valign="top">
<table width="100%" border="0" align="center">
<tr>
<th height="20">结 果 显 示 区 域</th>
</tr>
<tr>
<td id="res"></td>
</tr>
</table>
</td>
</tr>
</table>
<script type="text/javascript" language="javascript">
$(document).ready(function(){
$("#passIpt").val("hellojquery");
$("input:checkbox[name='chkWebSite']").val(["msdn","csdn"]);
$("input:radio[name='rdSearch']").val(["baidu"]);
$("#select1").val(["前台Web设计","ASP.NET网站开发"]);
$("#btnSubmit").click(function(){
var nameStr=$("#nameIpt").val();
var passStr=$("#passIpt").val();
var webSites=Array();
$("input:checkbox[name='chkWebSite']:checked").each(function(){
webSites[webSites.length]=$(this).val();
});
var searchs=$(":radio[name='rdSearch']:checked").val();
var skill=$("#select1").val();
var tech=$("#select2").val();
var text=$("#more").val();
var btnName=$("#btnSubmit").val();
var res=btnName+"按钮被按下,各个选项的结果为:<br/>"
+"<u>姓名:</u>"+nameStr+",<u>密码:</u>"+passStr
+"<br/><u>常去网站:</u>"+webSites+"<br/><u>默认搜索:</u>"+searchs
+"<br/><u>掌握技能:</u>"+skill+"<br/><u>想了解技术:</u>"+tech
+"<br/><u>个人描述:</u>"+text;
$("#res").html("您的选择结果如下<hr/>"+res);
});
});
</script>
</body>
</html>
4:元素属性
在jQuery中只需要使用attr()方法即可完成对元素属性的获取和设置,使用removeAttr()方法可以删除元素属性
4.1 读取和修改属性
attr(attributeName);如果元素没有相应的属性,则返回undefined.若要分别获取每个元素的属性值,则可以使用each()方法来构造一个循环结构。
$("ul li").attr("class" );
$("a").attr("href");
attr(attributeName, value); // attributeName为要修改的属性的名称, value为要修改的值
attr(map); //参数map表示要修改的值以"属性:值"对的形式出现,多个值之间用逗号分隔。
可以同时修改一个元素的多个属性,使用map参数形式实现,例如设置a元素的href、target和title属性,代码如下:
$("a").attr({target: "_self", href: 'xinwen.html', title: '最新国内新闻'});
当设置多个属性时,属性名可以使用引号,但是,当设置的属性是"class"时,必须使用引号。
4.2 根据索引设置属性
attr(attributeName, function(index, attr)); index为当前元素的索引值,attr则是当前元素的旧属性值
$("div").attr("id", function(index, attr) {
return "div_" + index; //以div_0、div_1...的顺序定义id属性
}).each(function(index) {
$(this).text("这是第" + (index + 1) + "个div元素"); //修改div的文本内容
});
4.3 删除属性
removeAttr(attributeName);
如:$("a").removeAttr("target"); //从a元素中删除属性target
综合例子:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>操作元素属性</title>
<script language="javascript" src="jquery-1.4.2.min.js"></script>
<style type="text/css">
#content {
text-align:left;
font-size:16px;
}
#content h1 {
margin:0px;
padding:0px;
color:#006;
font-size:24px;
font-weight:bold;
text-align:center;
}
#content img {
float:left;
padding: 5px;
border: 2px solid #D6D6D6;
margin: 10px;
}
</style>
</head>
<body>
<div id="content">
<h1>我收藏的课程列表</h1>
<img />
<img />
<img />
<img />
</div>
<script type="text/javascript" language="javascript">
$(document).ready(function(){
$("img").attr({width:150,height:150});
$("img").attr("src", function(index,attr) {
return (++index)+".gif";
}).attr("title",function(index,attr){
return "这是第"+(++index)+"张图片";
});
});
</script>
</body>
</html>
5:元素样式
5.1 添加样式类
addClass(className);
addClass(function(index, class));
index表示当前元素在集合中的索引,class表示当前元素原来的class属性值
如: $("div").addClass("main"); $("h3").addClass("TabTitle");
$("ul li").addClass(function(index, class) {
return "li_" + $(this).index();
});
$("div").removeClass("main").addClass("tab");
addClass与attr方法的区别
addClass方法的作用是追加样式,而attr方法才是真正的设置样式
步骤 | attr()方法 | add |
页面中的一个元素 | <h1>你好吗</h1> |
设置title样式 | $(“h1”).attr(“class”, “title”); | $(“h1”).addClass(“title”); |
结果 | <h1 class=”title”>你好</h1> |
设置hight样式 | $(“h1”).attr(“class”, “high”); | $(“h1”).addClass(“high”); |
结果 | <h1 class=”high”>你好</h1> | <h1 class=”title high”>你好</h1> |
5.2 移除样式类
removeClass方法可以从所匹配的元素中删除一个、多个或者全部样式类,语法格式如下:
removeClass([className]);
removeClass(function(index, class));
index表示当前元素在集合中的索引值,参数class表示当前元素的class属性值,该函数返回要移除的一个或者多个类名。
$("p").removeClass();
$("li").removeClass("tab activate");
$("input: text").removeClass("readOnly");
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>addClass()方法</title>
<script language="javascript" src="jquery-1.4.2.min.js"></script>
<style type="text/css">
idiv {
margin: 20px auto 10px auto;
width: 600px;
background: #fff;
padding: 10px;
border: 5px solid #000;
text-align: left;
height:40px
}
ul {
margin:0 auto;
padding:0;
list-style:none;
text-align:center;
}
ul li {
float:left;
margin-left: 5px;
padding: 2px;
cursor:pointer;
}
.bgColor {
background-color: #BDBDBD;
}
.liWidth {
width: 60px;
}
.tabin {
background-color: #393;
border: 1px solid #000;
color: #FFF;
}
</style>
</head>
<body>
<ul>
<li>新闻</li>
<li>网页</li>
<li>视频</li>
<li>空间</li>
<li>图片</li>
<li>地图</li>
<li>更多</li>
</ul>
<div></div>
<script type="text/javascript" language="javascript">
$(document).ready(function(){
$("p").removeClass();
$("li").removeClass("tab active");
$("input:text").removeClass("readOnly");
//$("li").removeClass(function(index,class){
//
//});
$("ul li").addClass("bgColor liWidth");
$("ul li").mouseover(function(){
$(this).addClass("tabin");
});
$("ul li").mouseout(function(){
$(this).removeClass("tabin");
});
});
</script>
</body>
</html>
5.3 切换样式
jQuery提供了一个toggleClass方法来控制指定元素上的样式重复切换,也就是如果样式存在则删除,不存在就添加它。
主要有3种形式:
toggleClass(className);
toggleClass(className, switch); //switch为true,则添加该类,如果为false,则移除该类
toggleClass(function(index, class), [switch]);
className表示要对每个匹配元素切换的一个或者多个类名(用空格分隔),switch是一个boolean值,指定要添加或者移除类名
$("h3.TabTitle").toggleClass("activate");
$("span").click(function() {
$(this).toggleClass("clearFloat);
});
$("ul li").toggleClass(function(index, class) {
if($(this).parent().is(".menu")) {
return “style1”;
} else {
return "style2";
}
});
综合例子:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>toggleClass()方法</title>
<script language="javascript" src="jquery-1.4.2.min.js"></script>
<style type="text/css">
body {
margin:0;
padding:0;
font-size:14px
}
#wrap {
margin: 20px auto 10px auto;
width: 600px;
background: #fff;
padding: 10px;
height:140px;
border: 5px solid #000;
text-align: left;
}
h1 {
color:#006;
font-size:24px;
font-weight:bold;
text-align:center;
margin-top:0px;
}
ul, li {
/*清除ul和li上默认的小圆点*/
list-style: none;
}
ul {
/*清除子菜单的缩进值*/
padding: 0;
margin: 0;
}
.main {
background-image: url(images/title.gif);
background-repeat: repeat-x;
width: 140px;
float: left;
margin-right: 5px;
}
li {
background-color: #EEEEEE;
}
a {
/*取消所有的下划线*/
text-decoration: none;
padding-left: 20px;
display: block;
display: inline-block;
width: 120px;
padding-top: 3px;
padding-bottom: 3px;
}
.main a {
color: white;
background-image: url(images/collapsed.gif);
background-repeat: no-repeat;
background-position: 3px center;
}
.main li a {
color: black;
background-image: none;
}
.hide {
display:none;
}
</style>
</head>
<body>
<div id="wrap">
<h1>精通jQuery视频目录索引</h1>
<ul>
<li class="main"> <a href="#">JavaScript</a>
<ul>
<li> <a href="#">内容概述</a> </li>
<li> <a href="#">JavaScript基础语法</a> </li>
<li> <a href="#">JavaScript实用编程</a> </li>
</ul>
</li>
<li class="main"> <a href="#">Web开发基础</a>
<ul>
<li> <a href="#">HTML</a> </li>
<li> <a href="#">CSS</a> </li>
<li> <a href="#">DOM</a> </li>
</ul>
</li>
<li class="main"> <a href="#">jQuery简单应用</a>
<ul>
<li> <a href="#">配置开发环境</a> </li>
<li> <a href="#">核心函数</a> </li>
</ul>
</li>
</ul>
</div>
<script type="text/javascript" language="javascript">
$(document).ready(function(){
$(".main a").attr("title","切换显示与隐藏")
$(".main a").click(function(){
//找到主菜单项对应的子菜单项
var ulNode = $(this).next("ul");
ulNode.toggleClass("hide");
//修改主菜单的指示图标
changeIcon($(this));
});
});
/**
* 修改主菜单的指示图标
*/
function changeIcon(mainNode) {
if (mainNode) {
if (mainNode.css("background-image").indexOf("collapsed.gif") >= 0) {
mainNode.css("background-image","url('images/expanded.gif')");
} else {
mainNode.css("background-image","url('images/collapsed.gif')");
}
}
}
</script>
</body>
</html>
6 元素CSS
6.1 读取CSS样式
css(cssName); 该方法将从匹配元素集合中获取第一个元素的样式属性值并返回。
在js中,通过 “对象.style.CSS属性”的语法来读取或者设置DOM元素的CSS样式,如span.style.color和p.style.backgroundColor等。
$("div").css("float"); //jQuery方式
$("div").css("cssFloat"); //W3C标准浏览器
$("div").css("styleFloat"); //IE浏览器
6.2 设置CSS样式
css(cssName, value);
css(map);
css(cssName, function(index, value));
$("div").css("color", "#FFFFFF");
$("div").css("background-color", "black");
$("div").css({"color":"#FFFFFF", "background":"black"});
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>css()方法</title>
<script language="javascript" src="jquery-1.4.2.min.js"></script>
<style type="text/css">
body {
margin:0;
padding:0;
font-size:14px
}
#wrap {
margin: 20px auto 10px auto;
width: 480px;
background: #fff;
padding: 10px;
height:140px;
border: 5px solid #000;
text-align: left;
}
h1 {
color:#006;
font-size:24px;
font-weight:bold;
text-align:center;
margin-top:0px;
clear:both
}
ul {
list-style:none;
padding:0;
}
ul li {
display:block;
width:10px;
height:10px;
background-color:#000;
margin-right:3px;
float:left;
cursor:pointer
}
</style>
</head>
<body>
<div id="wrap">设置字体的颜色
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
<h1>精通jQuery视频目录索引</h1>
<div id="res"></div>
</div>
<script language="javascript" type="text/javascript">
var colors=new Array("#000","#339","#c93","#6C3","#00F","#0FF","#F66");
$(document).ready(function(){
$("li").each(function(index){
$(this).css("background-color",colors[index]);
});
$("li").click(function(){ //遍历li元素
//从颜色数组中设置相应的颜色
var activeCss={"border":1,"border-style":"solid","border-color":"#f00"};
$(this).css(activeCss); //设置当前元素为激活状态
$("li").not($(this)).css("border","0"); //设置其他元素为不激活状态
var activeColor=$(this).css("backgroundColor"); //获取当前元素的背景色
$("h1").css("color",activeColor); //将颜色应用到字体上
$("#res").html("当前字体的颜色值为:"+activeColor);
});
});
</script>
</body>
</html>
6.3 元素CSS位置
jQuery提供了一些用于元素定位的方法,可以用来获取元素相对于文档或其父元素的坐标,可以控制元素在水平和垂直滚动条的位置。
6.3.1 offset方法
可以控制元素相对于文档的当前坐标。
offset()
offset(coordinates)
其中,不带参数时返回匹配集合中第一个元素相对与文档的top和left坐标,参数coordinates是一个包含top和left属性的对象,值为整数,表示
匹配元素的新top和left坐标。
var point = $("img:last").offset(); //获取坐标
var x = point.left; //获取left坐标值
var y = point.top; //获取top坐标值
offset方法不同于position方法,后者用来获取元素相对于其父元素的当前位置,在全局操作(如拖放),如果要在一个现有元素基础上定位一个新元素,
offset方法更加有用。
对id为panel的容器进行重新定位: $("#panel").offset({top: 50, left: 350});
6.3.2 position方法
用于获取匹配元素相对于父元素的当前偏移量。它返回的对象包括两个属性:top和left.
var point = $("#panel").position();
$("#res").html("当前left:" + point.left + ", 当前top:" + point.top);
6.3.3 scrollLeft和scrollTop方法
分别用于获取元素的滚动条距顶端和左端的距离。
var leftValue = $("div").scrollLeft(); //获取滚动条距左端的距离
var topValue = $("div").scrollTop(); //获取滚动条距离顶端的距离
还可以通过这两个方法控制元素滚动到指定位置,例如,控制textarea元素内的滚动条滚动到距顶端10,距左端20的位置,
$("textarea").scrollTop(10);
$("textarea").scrollLeft(20);
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>css位置</title>
<script language="javascript" src="jquery-1.4.2.min.js"></script>
<style type="text/css">
body {
margin:0;
padding:0;
font-size:14px;
text-align:center
}
#wrap {
margin: 20px auto 10px auto;
width: 700px;
background: #fff;
padding: 10px;
border: 5px solid #000;
position: relative;
height: 150px;
overflow: auto;
text-align: center;
}
h1 {
color:#006;
font-size:24px;
font-weight:bold;
text-align:center;
margin-top:0px;
}
#pic {
margin: 20px;
padding: 15px;
}
</style>
</head>
<body>
<br />
拖动滚动条查看完整内容
<div id="wrap">
<h1>经典卡通人物-采蘑菇的小姑娘</h1>
<div id="pic"> <img src="picture.jpg" /> </div>
</div>
<div id="result1"></div>
<div id="result2"></div>
<script language="javascript" type="text/javascript">
$(document).ready(function(){
var demo = $("#wrap");
var s = "相对于文档: left=<span>" + Math.round(demo.offset().left) + "</span>, top=<span>" + Math.round(demo.offset().top) + "</span>";
s += "<br />相对于父元素: left=<span>" + Math.round(demo.position().left) + "</span>, top=<span>" + Math.round(demo.position().top) + "</span>";
$("#result1").html(s);
});
$("#wrap").scroll(function () {
var msg = "滚动条的当前位置:" + "scrollLeft=<span>" + $(this).scrollLeft() + "</span>; scrollTop=<span>" + $(this).scrollTop() + "</span>";
$("#result2").html(msg);
});
</script>
</body>
</html>
7:元素CSS尺寸
7.1 height方法和width方法
返回一个整数值,该值不包括内边距(padding)、边框(border)和外边距(margin)
var divHeight = $("div").height(); //获取高度
var divWidth = $("div").width(); //获取宽度
var winHeight = $(window).height(); //获取浏览器窗口高度
var winWidth = $(window).width(); //获取浏览器窗口宽度
var docHeight = $(document).height(); //获取文档高度
var docWidth = $(document).width(); //获取文档宽度;
使用css方法也能实现获取元素高度和宽度的功能,两者的区别在于前者返回的值包含单位(如200px),后者则返回无单位的像素值(如20)
height(value); //设置元素的高度为value
width(value); //设置元素的宽度为value;
$("div").height("200");
$("div").width("95%");
7.2 innerHeight()和innerWidth()方法
为只读方法,用于获取元素的内部高度和内部宽度,也就是包含顶部内边距和底部内边距,但不包含边框和外边距的值,而且不支持window和document对象。
var inHeight = $("#banner").innerHeight();
var inWidth = $("#banner").innerWidth();
7.3 outerHeight()和outerWidth方法
可以返回元素的外部宽度和外部高度
outerHeight(includeMargin);
outerWidth(includeMargin);
includeMargin是boolean值,用于指定返回值中是否包含外边距,该参数值为false,表示不计算外边距,仅包含边框和内边距,如果为true,则将外边距计算在返回
值内。
var outHeight = $("#banner").outerHeight();
var outWidth = $("#banner").outerWidth();
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>CSS尺寸</title>
<script language="javascript" src="jquery-1.4.2.min.js"></script>
<style type="text/css">
body {
margin:0;
padding:0;
font-size:14px;
text-align:center
}
#wrap {
margin: 20px auto 10px auto;
padding: 10px;
width: 700px;
background: #fff;
border: 5px solid #000;
}
#pic {
padding: 5px;
border: 2px solid #D6D6D6;
clear:both
}
</style>
</head>
<body>
<div id="wrap"> </div>
<img src="keyboard.jpg" id="pic" /><br />
<br />
<br />
<div>高度:
<input id="newHeight" type="text" size="10" />
宽度:
<input id="newWidth" type="text" size="10" />
<input id="btnChange" type="button" value="修改" />
</div>
<script language="javascript" type="text/javascript">
$(document).ready(function(){
display();
});
function display(){
var picHeight=$("#pic").height();
var picWidth=$("#pic").width();
var picInnerHeight=$("#pic").innerHeight();
var picInnerWidth=$("#pic").innerWidth();
var picOuterHeight=$("#pic").outerHeight();
var picOuterWidth=$("#pic").outerWidth();
$("#newHeight").val(picHeight);
$("#newWidth").val(picWidth);
var result="图片高度:"+picHeight+",图片宽度:"+picWidth
+";内部高度:"+picInnerHeight+",内部宽度:"+picInnerWidth
+";外部高度:"+picOuterHeight+",外部宽度"+picOuterWidth;
$("#wrap").html(result);
}
$("#btnChange").click(function(){
var newHeight=$("#newHeight").val();
alert("newHeight:" + newHeight);
var newWidth=$("#newWidth").val();
alert("newWidth:" + newWidth);
//document.getElementById("pic").height = newHeight;
//document.getElementById("pic").width = newWidth;
$("#pic").height(newHeight).width(newWidth);
display();
});
</script>
</body>
</html>