JS加一个分支 实现

JavaScript013

JS加一个分支 实现,第1张

很抱歉,非让我来看一下.呵呵

我把你的程序全盘否定了!我来告诉你一下思路:

有两种方法实现二级联动的.

一种是ajax实现的无间断刷新技术.它的方法是这样的,当你选一个下拉列表框时可以触发onchange事件,这个事件得到具体的值后可以用js向服务器请求信息,将返回的信息再二级联动到下一下拉列表框中.但这种情况是一个页面可能向服务器有多次请求,如果是租用服务器时还好说,如果是买人的空间,有一个IIS链接数的限制,如果你网站流量大时会吃一点亏的.但ajax涉及的内容较多,一般很难一时半会掌握的.

这时可以采用刷新的办法.我假定一个例子你可能更好理解些.比如一个地址选框,第一个选省份,第二个选地区,当然可能有第三个.其他多少级不是问题.

首先当然是对初始化第一个选框(下拉列表框),不管选定哪一个,都对onchange事件进行处理,而这个事件没有任何其他的必要,只管重新请求一次就可以了,但你别忘记了你的第一个下拉列表框中已经有值的,这个值向传向服务器的,而这次可以进行接收,是首次请求还是是由用户的onchange事件的请求?他们的区别是一个接到的不是预定的值而已,这时可以加一个判断去区别一下的.如select name="se1"可以这程序的一开始去接收form中的sel的值,当然,你呆能接不到值,这是因为是首次请求,或者说非sel的select之onchange事件而来的,所以若接不到,(可以程序健壮性,接到错值时也中以处理一下),则在全表中搜索然后给sel进行初始化.若接到则到第二个表中进行单独的寻找,条件当然是属于接到的值,两表的关系也是1对多的.这里,不再对第一个进行任何的处理,只要让其等于接到的值,而再初始化第二个表就可以了.这显然是一个分支判断.而你根本就没有看到你的分支,所以是你错了!有第三个时也样处理.

可然,这种方法都是有利有不利的,一个是技术上有点难,一个是对客房户的体验不好.可以着情选择.

根据经验,我再来说一种技巧吧,比如是一个二级联致动或是三级联动,你可以在服务端生成一个js语句,这个语句的作用就是将所有的内容都装入到js中来,当然,这都是要下行到客户端的,有一个明显的特征就是,JS中支持二维及二维以上的数组,而数据与表格的关系我想不用再说了吧?呵呵,这样向客户端发送的只有一个请求的,而将所有数据全部发到客户端进行处理了,显然,这是一种一次数据交换的方法,只要一次请求就可以了!但不利的地方就是增加了客户机压力,网络压力,保适小数据的传送!代码来个例子吧:

<%

sql = "select sheng,diqu,xiang from pro,diqu,jidan where pro.id = di.pid and diqu.id = jidan.sid"

'显然最值进行循环就不写了

do while not rs.eof

response.write "pa[i]=new Array('"&rs("sheng")&"','"&rs("diqu")&"','"&rs("xiang")&"')"

.....

loop%>

当然外层上还有对pa进行定义的,这种方案只是用一个二维数组运河表示三个表而已.

而这客户端的使用中可以这样考虑,

for (i=0i<pa.lengthi++)

if (pa[i][0]=="北京"){

'用pa[i][1]去写第二个下拉列表框

}

但这里只是一个简单的说明,第一,这个代码要发生在第一个select的onchange事件中.第二,必须相办法去掉去复的值!因为这个会出现大量的一级重复的!如果是三级时,二级也会重复.这也是一种经验.但客户端的压力很大的.

所以还不如对其进行改进一下:

第一个表中内容存在pa数组中.第二个表中的一些内容存在pb中,当然如果有第三样同样处理的.但这种情况下,pb本身也是一个数组的,三级时使用pc数组,它存在同样是数据的.所以有人干脆对数据进行重封装,使用了JSON方式,本来这是ajax使用的一个数组封装形式.我这样一个例子吧:

pa = {河南{郑州{金水区,二七区,...},开封{明湖区,天苑区,....},....},河北{石家庄{....},....},.....}

呵呵,能看懂这种形式吗?这就是JSON的封装形式,很好使用的.但不管是数组的哪种封装还是JSON都不建议采用的,除非数据量小!所以最常用的还是上边的两种.

而你就是搞乱了什么是服务器什么是客户机的.

至于你不懂的那句,我也用过了,其实就是一个二级数组而已.

相信你能看明白!可惜我没有时间帮你写代码的!

v-for=" 循环

v-model='' 双向绑定,用于表单元素

v-on:事件名='函数名 绑定一个事件,简写@click=''

v-bing:属性名='' 绑定一个属性,简写 :属性名='值'

v-show='' 控制元素的显示或隐藏 dsiplay:none

v-if='' 控制元素的显示或隐藏 visibility:hidden

v-else

v-else-if

&&与 ,有假与为假

|| 或 ,有真或为真

! 非 ,取反

if(条件){

//1

}else{

//2

}

if(条件1){

//1

}else if(条件2){

//2

}else 你发(条件3){

//3

}else{

}

var num=123.456;

console.log(num.toFixed(2));四舍五入

console.log(Math.random()*1000.toFixed(0))

JavaScript和Java的区别:

1、用处不一样:

它们最本质的不同就是用途:Java目前被广泛应用于PC端、手机端、互联网、数据中心等等;

而JavaScript则被主要用于嵌入文本到HTML页面,读写HTML元素,控制cookies等。

2、出身不同:

Javascript与Java是由不同的公司开发的不同产品。Javascript是Netscape公司的脚本语言;而Java是SUN Microsystems 公司推出的新一代面向对象的程序设计语言。

3、嵌入方式不同:

在HTML文档中,两种编程语言的标识不同,Javascript 使用&ltscript&gt&lt/script&gt 来标识;而 Java 使用 Applet 来标识。

Java的特点:

Java看起来设计得很像C++,但是为了使语言小和容易熟悉,设计者们把C++语言中许多可用的特征去掉了,这些特征是一般程序员很少使用的。例如,Java不支持go to语句,代之以提供break和continue语句以及异常处理。Java还剔除了C++的操作符过载(overload)和多继承特征,并且不使用主文件,免去了预处理程序。

因为Java没有结构,数组和串都是对象,所以不需要指针。Java能够自动处理对象的引用和间接引用,实现自动的无用单元收集,使用户不必为存储管理问题烦恼,能更多的时间和精力花在研发上。

以上内容参考百度百科——JavaScript,百度百科——Java