請問一下這里傳的參數li是什么意思 傳這個li所以下面的getElementByTagName前面才能用li這個范圍限定嗎
function?showsubmenu(li){??????????????????????//這行的li是什么意思 var?submenu?=?li.getElementsByTagName("ul")[0];????? submenu.style.display="block";??????????????????? }
不傳這個li參數那么getElementByTagName 前邊的li 就不可以使用了嗎
2022-03-24
謝謝支持。請關注后續課程。哦,。。原來如此,還是加上那些嘛,那樣更完整
2018-04-09
函數里面的li只是一個參數變量,你可以命名什么都可以,重要的是你調用方法是傳進去給這個li的值,比如說代碼里面onmoseover=“showsubmenu(this)”,this指向的是當前調用這個showsubmenu的li對象,那么在調用方法的時候把this傳進去就相當于li = this,就是參數li指向this,也就是指向當前調用這個showsubmenu的li對象
2017-09-19
里面的element是某個元素節點對象,所獲得的是該元素對象下的以tagname為標簽名的子節點的集合,所以
li.getElementsByTagName("ul")[0];中的li也相當于一個元素對象,具體指代那個元素對象不確定,需要在之前js語句中申明li表示的元素對象,如
則在showsubmenu(li)中傳入的是"li"對應的第一個元素對象;
那么傳入的就是“div”對應的第一個元素對象;
所以li只是一個變量,你可以用其他任何符合變量命令規則的名稱替換它,只是這里可能li獲取的是tagName="li"的元素結點,所以將這個變量名命名為li ,更加方便而已。
如果函數中不傳入這個變量li,那么element.getElementsByTagName(tagname)中對應的element需要自行獲取,或者直接用document來作為element來限定范圍,其實document本身就是指整個HTML文檔,只是限定范圍更大
2017-09-19
sorry? 我試了下我弄錯了,你別看,這是誤導。
2017-09-19
如果不傳入參數的話,下面html 里面的<li>調用函數就不能傳入參數,只能直接調用函數:oumouseover="showsubmenu()" 這樣,? 這樣的話定義函數的時候,里面就得先獲取到li標簽:var lis = document.getElementsByTagName("li")[0]; 然后再在li標簽上獲取二級標題ul:var submenu = lis.getElementsByTagName("ul")[0];