注册 登录
编程论坛 JavaScript论坛

哪位大神可以帮我详细解读以下代码,最好告诉我应该怎样读。。。看的好痛苦

y564085046 发布于 2013-07-16 19:45, 768 次点击
function SetOnlineCount(c){
            this.parent.document.all["frm_status"].contentWindow.document.getElementById("onlinecount").innerHTML=c
        }
9 回复
#2
有容就大2013-07-16 23:46
貌似上面都是些基本单词吧 百度翻译下咯
getElementById就是以ID来获取界面元素
#3
y5640850462013-07-17 11:48
回复 2楼 有容就大
我不懂这种语句应该怎样读。。百度不到
#4
love云彩2013-07-17 17:19
这只是一连串的调用啊,从左到右,不断调用,最后调用了innerHTML这个变量,然后把c赋值给innerHTML
#5
有容就大2013-07-17 18:01
this.parent:
表单之中,所有对象的引用是分级别的,parent是一个子对象的父对象,当你对子对象进行设计改变父对象的属性值的时候,需要用到this.parent这个句子。比如,一个表单,里面有一个按钮,对这个按钮的click动作进行设计,单击此按钮让它改变整个表单的名字(caption)属性,这个表单就是这个按钮的parent,句子为:[color=#0000FF]this.parent.caption=“欢迎"表单生成以后,单击此按钮,表单的标题改为了欢迎
document.all:[/color]
程序代码:
一.

 document.all是页面内所有元素的一个集合。例如:     

 document.all(0)表示页面内第一个元素
二.
document.all可以判断浏览器是否是IE
  if(document.all){
    alert("is   IE!");
  }
三.
也可以通过给某个元素设置id属性(id=aaaa),然后用document.all.aaaa调用该元素
四.
案例:

代码1:   
  <input   name=aaa   value=aaa>
  <input   id=bbb   value=bbb>  
  <script   language=Jscript>
      alert(document.all.aaa.value)     //根据name取value
      alert(document.all.bbb.value)     //根据id取   value
  </script>   
代码2:
      但是常常name可以相同(如:用checkbox取用户的多项爱好的情况)  
  <input   name=aaa   value=a1>
  <input   name=aaa   value=a2>
  <input   id=bbb   value=bbb>  
  <script   language=Jscript>
      alert(document.all.aaa(0).value)     //显示a1
      alert(document.all.aaa(1).value)     //显示a2
      alert(document.all.bbb(0).value)     //这行代码会失败
  </script>   
代码3:
      理论上一个页面中的id是互不相同的,如果出现不同tags有相同的id
  document.all.id   就会失败,就象这样:
  <input   id=aaa   value=a1>
  <input   id=aaa   value=a2>
  <script   language=Jscript>
      alert(document.all.aaa.value)     //显示   undefined   而不是   a1或者a2
  </script>  
代码4:

 对于一个复杂的页面(代码很长,或者id是由程序自动产生),或着一个
  javascript初学者写的程序,很有可能出现两个tags有相同id的情况。

 为了编程的时候不出错,我推荐这样的写法:
  
  <input   id=aaa   value=aaa1>
  <input   id=aaa   value=aaa2>
  <input   name=bbb   value=bbb>
  <input   name=bbb   value=bbb2>
  <input   id=ccc   value=ccc>
  <input   name=ddd   value=ddd>
  
  <script   language=Jscript>
      alert(document.all("aaa",0).value)   
      alert(document.all("aaa",1).value)   
      alert(document.all("bbb",0).value)   
      alert(document.all("bbb",1).value)   
      alert(document.all("ccc",0).value)   
      alert(document.all("ddd",0).value)   
  </script>  


 
#6
有容就大2013-07-17 18:03
以下是引用love云彩在2013-7-17 17:19:46的发言:

这只是一连串的调用啊,从左到右,不断调用,最后调用了innerHTML这个变量,然后把c赋值给innerHTML
innerHTML也可以看做一个属性吧 呵呵
欢迎一起来学习 讨论
#7
mumuzi12013-07-18 11:02
function SetOnlineCount(c){
            this.parent.document.all["frm_status"].contentWindow.document.getElementById("onlinecount").innerHTML=c
        }
//这个函数,c是传入参数,this.parent.document.all["frm_status"]找到本页中所有的"frm_status",contentWindow.document.getElementById("onlinecount"),在子窗口中根据id获得id为"onlinecount"的控件,innerHTML=c把c赋值给前面"onlinecount"控件的文本内容。
#8
有容就大2013-07-18 23:44
回复 7楼 mumuzi1
是这个样子的。。。
#9
y5640850462013-07-20 12:08
回复 5楼 有容就大
好,谢谢
#10
y5640850462013-07-20 12:09
回复 7楼 mumuzi1
太感谢了
1