这个问题其实想要实现的效果不难,但关键在于你的数据是灵活变化的还是固定不变的?
(1)如果是固定的,我是指(表格大小,长宽,位置均不变,但图片内容是可以变化的),这个就很容易写,我写了一个简单的Demo
HTML:
<!DOCTYPE html><html>
<head>
<title></title>
<meta http-equiv="Content-type" content="text/html charset=utf-8" />
<style type='text/css'>
.sel tr td{
width: 80px
background:#09f
height: 20px
text-align: center
color:#fff
cursor: pointer
}
table tr td img{display: none} /*这里我先把图片隐蔽了*/
</style>
</head>
<body>
<table>
<tr>
<!-- 给图片添加一个ID -->
<td><img src='../picture/01.jpg' id='img1' /></td>
<td><img src='../picture/02.jpg' id='img2' /></td>
<td><img src='../picture/03.jpg' id='img3' /></td>
</tr>
</table>
<table class="sel">
<tr>
<!--直接在td上添加事件,并传入指定的参数-->
<!-- 这个参数就是对应图片的ID -->
<td onclick="fToggle('img1')" >1</td>
<td onclick="fToggle('img2')" >2</td>
<td onclick="fToggle('img3')" >3</td>
</tr>
</table>
</body>
<script type="text/javascript">
function fToggle(objId){
//触发事件后,根据传入的参数获取对应的图片的display值
var state = document.getElementById(objId).style.display
//再进行设置显示或是隐藏就行了
if( state == 'block' ){
document.getElementById(objId).style.display = 'none'
}
else{
document.getElementById(objId).style.display = 'block'
}
}
</script>
</html>
(2)如果是变化的(指图片多少,表格大小均可以变化),那这里就相对复杂些,不过思路依然是可以沿用上面的思路去做的!这里我就不写了,比较麻烦
1.首先创建html结构,如下图所示,一个input元素,一个按钮,一个空的ul列表。
2.然后添加按钮点击事件,如下图所示,在按钮点击事件中获得input元素。
3.通过value属性我们可以获得用户在input中输入的内容,如下图所示。
4.下面我们来动态创建一个li元素,如下图所示,运用document中的createElement方法即可。
5.创建好li元素以后,下面要做的就是给其设置innerHTML内容,如下图所示。
6.接下来就是获取ul元素了,如下图所示,仍然用getElementById方法。
7.最后通过调用appendChild方法将创建的li元素添加到ul列表中,如下图所示。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)