<style type="text/css">
dl dd{
margin:0px;
}
dl{
height:16px;
overflow:hidden;
}
/*预定义一些样式 类选择器 便于给标签进行样式的动态加载*/
.open{
overflow:visible;
height:auto;
}
.close{
overflow:hidden;
}
dl dt{
color:#06F;
}
</style>
<script type="application/javascript">
</script>
</head>
<body>
<!--
1、标签封装数据 html
2、定义样式 css
3、明确事件源和事件 以及要处理的节点 dom
4、明确具体操作方式 其实就是事件的处理内容 js
-->
<script type="application/javascript">
//列表展开闭合效果
var flag= true;
function list1()
{
/*
1、无非就是将dl属性的overflow的值改成visible即可
2、要先获取dl节点
3、改变该节点的style.overflow属性
*/
//1、获取dl节点
var oDlNode = document.getElementsByTagName("dl")[0];
//oDlNode.style.overflow="visible";
if(flag)
{
oDlNode.style.overflow="visible";
flag= false;
}
else{
oDlNode.style.overflow="hidden";
flag= true;
}
}
//重新定义list 降低js和css的耦合性
function list2(node)
{
//1、获取div节点
//var oDlNode = document.getElementsByTagName("dl")[node];
//2、设置dl的className属性值
//oDlNode.className="open";
var oDlNode = node.parentNode;
if(oDlNode.className=="close")
{
oDlNode.className="open";
}
else
{
oDlNode.className="close";
}
}
/*
在多个列表下 一次只需要展开一个列表 其他列表都关闭
怎么保证开一个 而关其他
1、获取所有的dl节点
2、遍历这些节点 只对当前的dl进行展开 或者闭合操作 其他节点都进行闭合操作
*/
function list(node)
{
//获取当前的dl节点
var oDlNode = node.parentNode;
//获取所有的dl节点
var oDlNodes = document.getElementsByTagName("dl");
//遍历所有dl
for (var x= 0;x<oDlNodes.length;x++)
{
if(oDlNodes[x]==oDlNode)
{
if(oDlNode.className=="close")
{
oDlNode.className="open";
}
else
{
oDlNode.className="close";
}
}
else
{
oDlNodes[x].className="close";
}
}
}
</script>
<dl class="close">
<dt onclick="list(this)">显示条目一</dt>
<dd>展开里面的内容</dd>
<dd>展开里面的内容</dd>
<dd>展开里面的内容</dd>
<dd>展开里面的内容</dd>
<dd>展开里面的内容</dd>
<dd>展开里面的内容</dd>
</dl>
<dl class="close">
<dt onclick="list(this)">显示条目二</dt>
<dd>展开里面的内容</dd>
<dd>展开里面的内容</dd>
<dd>展开里面的内容</dd>
<dd>展开里面的内容</dd>
<dd>展开里面的内容</dd>
<dd>展开里面的内容</dd>
</dl>
<dl class="close">
<dt onclick="list(this)">显示条目三</dt>
<dd>展开里面的内容</dd>
<dd>展开里面的内容</dd>
<dd>展开里面的内容</dd>
<dd>展开里面的内容</dd>
<dd>展开里面的内容</dd>
<dd>展开里面的内容</dd>
</dl>
</body>
增删行
<script type="text/javascript">
function creTable1()
{
/*
可以通过之前的createElement 创建元素的形式来完成 巨原始
*/
//1、创建表格节点
var oTabNode = document.createElement("table");
//2、创建tBody节点
var oTbdNode = document.createElement("tbody");
//3、创建行节点tr
var oTrNode = document.createElement("tr");
//4、创建单元格节点td
var oTdNode = document.createElement("td");
oTdNode.innerHTML="这是个单元格";
//alert(oTdNode.innerHTML);
//让这些节点有关系 进行指定层次的节点添加
oTrNode.appendChild(oTdNode);
oTbdNode.appendChild(oTrNode);
oTabNode.appendChild(oTbdNode);
document.getElementsByTagName("div")[0].appendChild(oTabNode);
}
/*
上面的方法很麻烦 操作什么就在什么找方法
既然操作的是表格 那最方便的方式就是使用表格节点对象的方法来完成
表格是由行组成 表格节点对象中 insertRow方法就完成创建行并添加的动作
行是由单元格组成 通过tr节点对象的insertCell来完成
*/
function creTable()
{
var oTabNode = document.createElement("table");
oTabNode.setAttribute("id","tabid");
var rowValue = parseInt(document.getElementsByName("rownum")[0].value);
var colValue = parseInt(document.getElementsByName("colnum")[0].value);
for(var x= 1;x<=rowValue;x++){
var oTrNode = oTabNode.insertRow();
//document.write(oTrNode.nodeName);
for(var y= 1;y<=colValue;y++)
{
var oTdNode = oTrNode.insertCell();
oTdNode.innerHTML= x+"单元格"+y;
//document.write(oTdNode.innerHTML);
}
}
//将表格节点添加到div中
document.getElementsByTagName("div")[0].appendChild(oTabNode);
document.getElementsByName("crebut")[0].disabled=true;
}
//删除行
function delRow()
{
//获取表格对象
var oTabNode = document.getElementById("tabid");
if(!oTabNode)
{
alert("表格不存在");
return;
}
//获取要删除的表格行数
var rowVal = document.getElementsByName("delrow")[0].value;
if(rowVal>=1 && rowVal<=oTabNode.rows.length)//还有一个长度
{
oTabNode.deleteRow(rowVal-1);
}
else{
alert("要删除的行不存在");
}
}
//删除列 其实就是在删除每一行中同一位置的单元格
function delCol()
{
var oTabNode = document.getElementById("tabid");
if(!oTabNode)
{
alert("表格不存在");
return;
}
var colVal = document.getElementsByName("delcol")[0].value;
if(colVal>=1 && colVal<=oTabNode.rows[0].cells.length)
{
for(var x= 0; x<oTabNode.rows.length;x++)
{
oTabNode.rows[x].deleteCell(colVal-1);
}
}
else
{
alert("删除的列不存在");
}
}
</script>
</head>
<body>
<!--
在页面中创建一个 5行6列的表格
1、事件源 比如按钮
2、必须有一个生成的表格节点存储位置
-->
行<input type="text" name="rownum" />
列<input type="text" name="colnum" />
<input type="button" value="创建表格" name="crebut" onclick="creTable()" />
<hr />
<input type="text" name="delrow" /> <input type="button" value="删除行" onclick="delRow()" />
<input type="text" name="delcol" /> <input type="button" value="删除列" onclick="delCol()" />
<div>
</div>
</body>
本文介绍了一种通过JavaScript实现网页元素动态操作的方法,包括列表的展开与收起、表格的创建与修改等实用技巧,有助于提升网站交互体验。
1050

被折叠的 条评论
为什么被折叠?



