js实现对list列表的封装

JavaScript019

js实现对list列表的封装,第1张

/*

/**

/**

/*

/**

/**

/**

/**

/**

// 第一个元素索引

function front() {

this.pos = 0

}

// 最后一个元素的索引

function end() {

this.pos = this.listSize-1

}

// 向前移一个索引

function prev() {

if(this.pos==0){

return this.pos = 0

}

--this.pos

}

// 向后移一个索引

function next() {

if(this.pos<this.listSize-1){

++this.pos

}

}

// 当前的索引位置

function currPos() {

return this.pos

}

/**

/**

// 是否可以移到下一个索引位置

function hasNext() {

return this.pos<this.listSize

}

// 是否可以移到上一个索引位置

function hasPrev() {

return this.pos>=0

}

使用方法

var names = new List()

names.append('zhangsan')

names.append('lisi')

names.append('wangwu')

names.front()

names.next()

console.log(names.getElement()) // lisi

使用迭代器访问列表

for(names.front()names.hasNext()names.next()){

console.log(names.getElement())

}

//zhangsan lisi wangwu

servlet

request.setAttribute("list", list)

request.getRequestDispatcher("xxx.jsp").forward(request, response)

<%@ page import="java.util.*" %>

<% List<User>list = (List<User>) request.getAttribute("list")%>

下面就可以用

<%=list.get属性()%>取值

先访问servlet就可以了

很简单的一个使用:点击菜单,能够显示下面的或者不显示

1,主要目的:: 展现的是的一个菜单项,然后点击一下,隐藏,点一下,弹出下面的内容

用到的是 overflow:hidden    和  overflow="visible"这两个属性 在点击的function中,设置属性应该node.style.overflow="visible"当然设置tr的高度也是很重要的,要恰好让其他的选项隐蔽。

2,采用同样的技术,多加几个,但是就是传参数比较麻烦,采用this传参很常用

具体代码如下。

<!DOCTYPE html>

<html>

<head>

<!-- 1,主要目的:: 展现的是的一个菜单项,然后点击一下,隐藏,点一下,弹出下面的内容

用到的是 overflow:hidden    和  overflow="visible"这两个属性 在点击的function中,设置属性应该

node.style.overflow="visible"

2,采用同样的技术,多加几个,但是就是传参数比较麻烦

-->

<title>list.html</title>

<!--<link rel="stylesheet" type="text/css" href="./styles.css">-->

<style type="text/css">

dl{

height:18px/*优先级问题,必须要写*/

overflow:hidden

}

dd{

margin:0px

padding:0px

}

.close{

height:18px/*优先级问题,必须要写*/

overflow:hidden

}

.open{

height:80px

overflow:visible

background-color:#ff8000

}

</style>

<script type="text/javascript">

function click2(node1){

//                      alert("aa"+node.nodeName)// td

var nodes=node1.parentNode

//                      alert(nodes.nodeName)

//  alert("aa"+nodes.className)

//※※通过传进的对象 判断采用哪种css模式

if(nodes.className=="open"){

nodes.className="close"

}else{

nodes.className="open"

}

}

</script>

</head>

<body>

<!--层次列表-->

<!--当很多时候采用传参就很麻烦,每个都需要去传参

<dl>

<dt onclick="click1(0)">菜单条1</dt>

<dd>菜单1</dd>

<dd>菜单2</dd>

<dd>菜单3</dd>

<dd>菜单4</dd>

</dl>

<dl>

<dt onclick="click1(1)">菜单条2</dt>

<dd>菜单11</dd>

<dd>菜单22</dd>

<dd>菜单33</dd>

<dd>菜单44</dd>

</dl>

<dl>

<dt onclick="click1(2)">菜单条3</dt>

<dd>菜单12</dd>

<dd>菜单23</dd>

<dd>菜单34</dd>

<dd>菜单45</dd>

</dl>

-->

<br/>

<br/>

<hr/>

<!--<dl class="close">先手动采用css测试,可以然后采用编程使用-->

<dl>

<dt onclick="click2(this)">1菜单条1</dt>

<dd>菜单1</dd>

<dd>菜单2</dd>

<dd>菜单3</dd>

<dd>菜单4</dd>

</dl>

<dl>

<dt onclick="click2(this)">2菜单条2</dt>

<dd>菜单11</dd>

<dd>菜单22</dd>

<dd>菜单33</dd>

<dd>菜单44</dd>

</dl>

<dl>

<dt onclick="click2(this)">3菜单条3</dt>

<dd>菜单12</dd>

<dd>菜单23</dd>

<dd>菜单34</dd>

<dd>菜单45</dd>

</dl>

</body>

</html>