TEL:400-8793-956
当前位置:程序、服务器

在var anchor = listItem.querySelector(“ a”)中,我们如何引用(listItem),而先前未定义它

提问者: 近期获赞: 浏览人数: 发布时间:2021-03-12 09:57:46

 问:所有变量都引用代码中已定义的内容,例如var navigation> document> id .. var listItems引用为navigation> children。

 
而var锚指向以前在文档中未定义的listItem?那个怎么样??代码如何在不知道listItem是什么的情况下找到与listItem相关的<a>?
 
 app.js
//选择navargation 
var  navigation  =  document 。getElementById (“ navigation” ); 
//从导航中选择所有listItems var listItems = navigation ; //当按下导航链接时,var linkListener = function (){ console 。日志(“单击监听器!” );} var bindEventsToLinks = function (listItem ){ //选择锚var anchor =
 
     listItem ; 
//将linkListener绑定到anchor元素(a)anchor 。onclick = linkListener ; }为(VAR我= 0 ;我< listItems中。长度;我++ ){ bindEventsToLinks (listItems中[我]); }  
 
 index.html
<!DOCTYPE HTML> 
< HTML > 
<头部> </头> 
<体> 
< UL ID = “导航” > <李> <一个HREF = “#home” >主页</一> </李> <李> <一个HREF = “#about” >关于</一> </李> <李> < a
 
     href = “ #contact” >联系人</ a > 
</ li > </ ul > < p >我最喜欢的一些东西:</ p > < ul > < li >    玫瑰上的雨滴
</ li > < li >    小猫身上的胡须
</ li > < li >    用绳子包裹的牛皮纸包装
</ li > </ ul ><  
 
脚本 src = “ app.js” > </脚本> 
</正文> 
</ html >
 
 
答:您将“ listItem”传递到存储在bindEventsToLinks变量中的匿名函数中。“ listItem”本身未定义,但是代表您传递给该函数的任何内容。
 
当您实际调用该函数时,您的代码是bindEventsToLinks(listItems [i]);。因此,对于listItems中的每件事,您都使用它来“替换”代码中的“ listItem”一词。它的工作方式不完全相同,但是您想将其归类为“ listItems [0],listitems [1],listItems [2]等”。每次在for循环中调用该函数时,都将使用“ listItem”。
 
因此,可以将“ listItem”视为将在以后传递的真实事物的代理。我希望这可以清除一切!
上一篇: http.STATUS_CODES不再适用
下一篇: 创建一个String变量,intAsString变量?