javascript_10_dom_练习
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=gbk" />
<title>dom_实例练习</title>
<style type="text/css">
a:link,a:visited{
color: blue;
text-decoration: none;
}
a:hover{
color: red;
}
.large{
font-size: 26px;
}
.normal{
font-size: 16px;
}
.small{
font-size: 12px;
}
dl{
height: 16px;
overflow: hidden;
}
dl dt{
color: orange;
}
dl dd{
margin: 0px;
}
table ul{
list-style: none;
margin: 0px;
padding: 0px;
background-color: purple;
color: white;
display: none;
}
table{
border: #008ff0 dashed 1px;
}
table td{
border: #008ff0 dashed 1px;
background-color: orange;
}
.open_overflow{
overflow: visible;
}
.hidden_overflow{
overflow: hidden;
}
.block_display{
display: block;
}
.none_display{
display: none;
}
</style>
</head>
<body>
<h1>dom_实例练习</h1>
<script type="text/javascript" src="a.js"> </script>
==============我是分割线==================
/*
* 需求:实现类似qq好友列表效果
默认情况下:ul中的display: none;
当点击a时,打开所在的ul,display: block;其他仍然是display: none;
*/
<script type="text/javascript">
function list_ul(anode){
//a的下一个兄弟是ul,但不建议使用
//a的父就是td,首先拿到td,对td用标签名拿ul
//拿所有的ul,和当前ul比较即可
var otd=anode.parentnode;
var oul=otd.getelementsbytagname("ul")[0];//当前ul
var collul=document.getelementsbytagname("ul");
for (var i=0; i < collul.length; i++) {
if (collul[i]==oul) {
if (oul.classname=="block_display") {
oul.classname="none_display";
} else{
oul.classname="block_display";
}
} else{
collul[i].classname="none_display";
}
}
}
</script>
<table>
<tbody>
<tr>
<td>
<a href="javascript:void(0)" onclick="list_ul(this)">红楼梦</a>
<ul>
<li>林黛玉</li>
<li>史湘云</li>
<li>薛宝钗</li>
<li>妙玉</li>
</ul>
</td>
</tr>
<tr>
<td>
<a href="javascript:void(0)" onclick="list_ul(this)">西游记</a>
<ul>
<li>唐僧</li>
<li>孙悟空</li>
<li>猪八戒</li>
<li>沙和尚</li>
</ul>
</td>
</tr>
<tr>
<td>
<a href="javascript:void(0)" onclick="list_ul(this)">水浒传</a>
<ul>
<li>鲁智深</li>
<li>林冲</li>
<li>武松</li>
<li>李逵</li>
</ul>
</td>
</tr>
</tbody>
</table>
==============我是分割线==================
/*
* 需求:展开列表效果!
默认情况下:dl的overflow属性值是:hidden;
当点击dt的时候
dl的overflow属性值是:visible;
*/
<script type="text/javascript">
var flag=true;//设置为全局变量
function showdl_3(dtnode){
//有多个dl,每次只打开点击的dl
//dl是dt的父结点
//这个是改进版本2,先预定义样式,打开和关闭
var odl=dtnode.parentnode;//获取当前dl
//接着获取所有dl,进行遍历,除了当前dl,其他全隐藏
var colldl=document.getelementsbytagname("dl");
for (var i=0; i < colldl.length; i++) {
if (colldl[i]==odl) {
if (odl.classname=="open_overflow") {
odl.classname="hidden_overflow";
} else{
odl.classname="open_overflow";
}
}else{
colldl[i].classname="hidden_overflow";
}
}
}
function showdl_2(){
//这个是改进版本,先预定义样式,打开和关闭
var odl=document.getelementbyid("dl_id_1");
if (odl.classname=="open_overflow") {
odl.classname="hidden_overflow";
} else{
odl.classname="open_overflow";
}
}
function showdl_1(){
var odl=document.getelementbyid("dl_id_1");
if(flag){
odl.style.overflow="visible";
flag=false;
}else{
odl.style.overflow="hidden";
flag=true;
}
}
</script>
<dl id="dl_id_1">
<dt onclick="showdl_3(this)">dt定义条目1</dt>
<dd>dd定义描述1—1</dd>
<dd>dd定义描述1—2</dd>
<dd>dd定义描述1—3</dd>
<dd>dd定义描述1—4</dd>
</dl>
<dl >
<dt onclick="showdl_3(this)">dt定义条目2</dt>
<dd>dd定义描述2—1</dd>
<dd>dd定义描述2—2</dd>
<dd>dd定义描述2—3</dd>
<dd>dd定义描述2—4</dd>
</dl>
<dl >
<dt onclick="showdl_3(this)">dt定义条目3</dt>
<dd>dd定义描述3—1</dd>
<dd>dd定义描述3—2</dd>
<dd>dd定义描述3—3</dd>
<dd>dd定义描述3—4</dd>
</dl>
==============我是分割线==================
<script type="text/javascript">
function changefont(stylename){
var odiv=document.getelementbyid("div_id_1");
odiv.classname=stylename;//这句是关键,重点!
}
</script>
/*
* 需求:仿造小说网站,大中小字体
*/
<a href="javascript:void(0)" onclick="changefont('large')">大字体</a>
<a href="javascript:void(0)" onclick="changefont('normal')">中字体</a>
<a href="javascript:void(0)" onclick="changefont('small')">小字体</a>
<div id="div_id_1">
小说正文小说正文小说正文小说正文小说正文小说正文小说正文小说正文
小说正文小说正文小说正文小说正文小说正文小说正文小说正文小说正文
小说正文小说正文小说正文小说正文小说正文小说正文小说正文小说正文
</div>
</body>
</html>
以上就是javascript_10_dom_练习的内容。