简写下面的一堆javascript代码,不要用jquery,只能用javascript,各种思路均可,代码越少越好

zygis111 2011-07-22 10:07:02
<script language ="javascript" type ="text/javascript">

function hide1() {
var obj13 = document.getElementById("l13");
obj13.style.display = "none";
var obj14 = document.getElementById("l14");
obj14.style.display = "none";
var obj15 = document.getElementById("l15");
obj15.style.display = "none";
var obj16 = document.getElementById("l16");
obj16.style.display = "none";
var obj17 = document.getElementById("l17");
obj17.style.display = "none";
var obj18 = document.getElementById("l18");
obj18.style.display = "none";
var obj19 = document.getElementById("l19");
obj19.style.display = "none";
var obj20 = document.getElementById("l20");
obj20.style.display = "none";
var obj21 = document.getElementById("l21");
obj21.style.display = "none";
var obj22 = document.getElementById("l22");
obj22.style.display = "none";
var obj23 = document.getElementById("l23");
obj23.style.display = "none";
var obj24 = document.getElementById("l24");
obj24.style.display = "none";
var obj25 = document.getElementById("l25");
obj25.style.display = "none";
var obj26 = document.getElementById("l26");
obj26.style.display = "none";
var obj27 = document.getElementById("l27");
obj27.style.display = "none";
var obj28 = document.getElementById("l28");
obj28.style.display = "none";
var obj1 = document.getElementById("l1");
obj1.style.display = "block";
var obj2 = document.getElementById("l2");
obj2.style.display = "block";
var obj3 = document.getElementById("l3");
obj3.style.display = "block";
var obj4 = document.getElementById("l4");
obj4.style.display = "block";
var obj5 = document.getElementById("l5");
obj5.style.display = "block";
var obj6 = document.getElementById("l6");
obj6.style.display = "block";
var obj7 = document.getElementById("l7");
obj7.style.display = "block";
var obj8 = document.getElementById("l8");
obj8.style.display = "block";
var obj9 = document.getElementById("l9");
obj9.style.display = "block";
var obj10 = document.getElementById("l10");
obj10.style.display = "block";
var obj11 = document.getElementById("l11");
obj11.style.display = "block";
var obj12 = document.getElementById("l12");
obj12.style.display = "block";
}
function hide2() {
var obj1 = document.getElementById("l1");
obj1.style.display = "none";
var obj2 = document.getElementById("l2");
obj2.style.display = "none";
var obj3 = document.getElementById("l3");
obj3.style.display = "none";
var obj4 = document.getElementById("l4");
obj4.style.display = "none";
var obj5 = document.getElementById("l5");
obj5.style.display = "none";
var obj6 = document.getElementById("l6");
obj6.style.display = "none";
var obj7 = document.getElementById("l7");
obj7.style.display = "none";
var obj8 = document.getElementById("l8");
obj8.style.display = "none";
var obj9 = document.getElementById("l9");
obj9.style.display = "none";
var obj10 = document.getElementById("l10");
obj10.style.display = "none";
var obj11 = document.getElementById("l11");
obj11.style.display = "none";
var obj12 = document.getElementById("l12");
obj12.style.display = "none";
var obj22 = document.getElementById("l22");
obj22.style.display = "none";
var obj23 = document.getElementById("l23");
obj23.style.display = "none";
var obj24 = document.getElementById("l24");
obj24.style.display = "none";
var obj25 = document.getElementById("l25");
obj25.style.display = "none";
var obj26 = document.getElementById("l26");
obj26.style.display = "none";
var obj27 = document.getElementById("l27");
obj27.style.display = "none";
var obj28 = document.getElementById("l28");
obj28.style.display = "none";
var obj13 = document.getElementById("l13");
obj13.style.display = "block";
var obj14 = document.getElementById("l14");
obj14.style.display = "block";
var obj15 = document.getElementById("l15");
obj15.style.display = "block";
var obj16 = document.getElementById("l16");
obj16.style.display = "block";
var obj17 = document.getElementById("l17");
obj17.style.display = "block";
var obj18 = document.getElementById("l18");
obj18.style.display = "block";
var obj19 = document.getElementById("l19");
obj19.style.display = "block";
var obj20 = document.getElementById("l20");
obj20.style.display = "block";
var obj21 = document.getElementById("l21");
obj21.style.display = "block";
}
function hide3() {
var obj1 = document.getElementById("l1");
obj1.style.display = "none";
var obj12 = document.getElementById("l2");
obj2.style.display = "none";
var obj13 = document.getElementById("l3");
obj3.style.display = "none";
var obj4 = document.getElementById("l4");
obj4.style.display = "none";
var obj5 = document.getElementById("l5");
obj5.style.display = "none";
var obj6 = document.getElementById("l6");
obj6.style.display = "none";
var obj7 = document.getElementById("l7");
obj7.style.display = "none";
var obj8 = document.getElementById("l8");
obj8.style.display = "none";
var obj9 = document.getElementById("l9");
obj9.style.display = "none";
var obj10 = document.getElementById("l10");
obj10.style.display = "none";
var obj11 = document.getElementById("l11");
obj11.style.display = "none";
var obj12 = document.getElementById("l12");
obj12.style.display = "none";
var obj13 = document.getElementById("l13");
obj13.style.display = "none";
var obj14 = document.getElementById("l14");
obj14.style.display = "none";
var obj15 = document.getElementById("l15");
obj15.style.display = "none";
var obj16 = document.getElementById("l16");
obj16.style.display = "none";
var obj17 = document.getElementById("l17");
obj17.style.display = "none";
var obj18 = document.getElementById("l18");
obj18.style.display = "none";
var obj19 = document.getElementById("l19");
obj19.style.display = "none";
var obj20 = document.getElementById("l20");
obj20.style.display = "none";
var obj21 = document.getElementById("l21");
obj21.style.display = "none";
var obj22 = document.getElementById("l22");
obj22.style.display = "block";
var obj23 = document.getElementById("l23");
obj23.style.display = "block";
var obj24 = document.getElementById("l24");
obj24.style.display = "block";
var obj25 = document.getElementById("l25");
obj25.style.display = "block";
var obj26 = document.getElementById("l26");
obj26.style.display = "block";
var obj27 = document.getElementById("l27");
obj27.style.display = "block";
var obj28 = document.getElementById("l28");
obj28.style.display = "block";
}
</script>
...全文
457 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
eyunfei 2011-08-02
  • 打赏
  • 举报
回复
针对楼主的代码写的一段,纯应用性质,通用性较差,如果是需要通用的话,最好用div上的class会比较好点~~~

function _hide( start, end, display){
var el;

for( var i = start, ln = end; i < ln; i++ ){
el = document.getElementById( i );
if( el ){
el.style.display = display;
}
}
}

function hide(){
var arr = arguments,
first = arr[0];

//参数为整型
if( typeof first === 'number' && isFinite(first) ){
arr = [arguments];
}

for( var i = 0, ln = arr.length; i < ln; i++ ){
_hide.apply(this, arr[i]);
}
}

function hide1(){
hide( [113,l28, 'none'],
[l1,l9, 'block'],
[l10,l12, 'block']
);
}

function hide2() {
hide( [l1,l9, 'none'],
[l10,l12, 'none'],
[122,l28, 'none'],
[l13,121, 'block']
);
}

function hide3() {
hide( [l1,l9, 'none'],
[l10,121, 'none'],
[122,l28, 'block']
);
}
风一样的大叔 2011-08-02
  • 打赏
  • 举报
回复
我是看只有一个回答才进来的,进来发现都23楼了,没人和我抢吧?
lbq0801 2011-08-01
  • 打赏
  • 举报
回复
楼上至少有三个答案
licip 2011-07-30
  • 打赏
  • 举报
回复
上面已有答案,但我觉得楼主还是在页面上用一个div层,然后控制div层为好。
86y 2011-07-30
  • 打赏
  • 举报
回复
顶你
螃蟹k3179 2011-07-30
  • 打赏
  • 举报
回复
楼主的思路出发点需要改正
仲兴轩 2011-07-29
  • 打赏
  • 举报
回复

楼主厉害
不得不说, Jquery在这方面是很强大的!
看了下楼主写的,
改了下,


function hide(start, end){ //
// 你的hide1用 hide(1, 13);
// 你的hide2用 hide(13, 21);
// 你的hide3用 hide(22, 28);
// 针对你写的三个方法写的,
for(var i=1; i<28; i++){
if(document.getElementById("l"+i)){
if(i >= start && i <= end){
document.getElementById("l"+i).style.display = "block";
} else {
document.getElementById("l"+i).style.display = "none";
}
}
}
}

  • 打赏
  • 举报
回复
才看到还有这么一帖。楼主,悲哀啊悲哀。
了無痕 2011-07-27
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 hch126163 的回复:]

引用 1 楼 tianrrrguang 的回复:

function hide1()
{
for(var i=1;i<13;i++){
document.getElementById('l'+i).style.display = "block";
}
for(var i=13;i<29;i++){
document.getElementById('l'+i).style.di…………
[/Quote]

+1
PerterPon 2011-07-27
  • 打赏
  • 举报
回复
真是蛋疼,估计LZ就是用循环把这些代码输出来的
Acesidonu 2011-07-26
  • 打赏
  • 举报
回复
相同功能放入同一个容器中操作此容器比较方便,或用class控制也可以。
s1120624175 2011-07-26
  • 打赏
  • 举报
回复
加class是正解 不用循环
如果循环不可避免 就定义2个变量 i、j 用一个循环处理即可
ethanlai123 2011-07-25
  • 打赏
  • 举报
回复
Sorry,上面的循环写错了 ,下面正解

var nodeList=getElementsByClass("myclass");
for(var i=nodeList.length-1;i>=0;i--){
nodeList[i].style.display="none"
}
ethanlai123 2011-07-25
  • 打赏
  • 举报
回复
给每个元素加上一个class

//创建 getElementsByClass 方法
function getElementsByClass(searchClass, node, tag) {

var classElements = new Array();

if (node == null)

node = document;

if (tag == null)

tag = '*';

var els = node.getElementsByTagName(tag);

var elsLen = els.length;

var pattern = new RegExp("(^|\\s)" + searchClass + "(\\s|$)");

for (i = 0, j = 0; i < elsLen; i++) {

if (pattern.test(els[i].className)) {

classElements[j] = els[i];

j++;

}

}

return classElements;
}

var nodeList=getElementsByClass(className);
for(var i=nodeList.length;i>0;i--){
nodeListp[i].style.display="none"
}
showenxxx 2011-07-23
  • 打赏
  • 举报
回复
还是用css吧
半夜郎中 2011-07-23
  • 打赏
  • 举报
回复

function hide(idname)
{
var obj = document.getElementById(idname);
if(obj.style.display=='none')
{
obj.style.display='block';
}
else
{
obj.style.display='none';
}
}

楼主看看这个样能否行,在你需要处理的地方调用该类并把对应的对象传递过来!
例如:

<div id='test'>
</div>
<input type='button' onclick='hide('test')'/>

上面的例子就是点击按钮时如果div是影藏则显示出来,如果显示了则影藏,不是是否满足你的要求
杨哥儿 2011-07-23
  • 打赏
  • 举报
回复
用个css中的class不都全部解决了!还用写这么多代码?
likeajin 2011-07-23
  • 打赏
  • 举报
回复
不知道楼主的Html结构,只能按楼主贴出的代码做一个一定的优化,应该还有更好的:

var hides=[];//添加所有想要隐藏的(未必是已经隐藏掉的)div id
var shows=[];//添加所有想要显示的(未必是已经隐藏掉的)div id
//关于上面两个数组的获取可以自己去思考,循环也行,结构也行,css也行
for(var i=Math.max(hides.length-1,shows.length-1);i>=0;i--){
if(hides[i]) document.getElementById(hides[i]).style.display = "none";
if(shows[i]) document.getElementById(hides[i]).style.display = "block";
}
潇湘博客 2011-07-23
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 hch126163 的回复:]

引用 1 楼 tianrrrguang 的回复:

function hide1()
{
for(var i=1;i<13;i++){
document.getElementById('l'+i).style.display = "block";
}
for(var i=13;i<29;i++){
document.getElementById('l'+i).style.di…………
[/Quote]


正解
hch126163 2011-07-23
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 tianrrrguang 的回复:]

function hide1()
{
for(var i=1;i<13;i++){
document.getElementById('l'+i).style.display = "block";
}
for(var i=13;i<29;i++){
document.getElementById('l'+i).style.di……
[/Quote]

+++
用循环!!

楼主那么多dom 对象,如果是连着的,可以放入一个div.直接控制这个div.多省事啊
加载更多回复(4)

87,990

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧