沒有任何選項(xiàng)被選中時,按下回車不做任何操作,但會報(bào)錯
<script type="text/javascript">
? ? ? ? window.onload = function () {
? ? ? ? ? ? var box = document.getElementById('divselect'),
? ? ? ? ? ? ? ? title = box.getElementsByTagName('cite')[0],
? ? ? ? ? ? ? ? menu = box.getElementsByTagName('ul')[0],
? ? ? ? ? ? ? ? as = box.getElementsByTagName('a'),
? ? ? ? ? ? ? ? index = -1,
? ? ? ? ? ? ? ? lis = menu.childNodes;
? ? ? ? ? ? // 點(diǎn)擊三角時
? ? ? ? ? ? title.onclick = function (event) {
? ? ? ? ? ? ? ? // 執(zhí)行腳本
? ? ? ? ? ? ? ? event = event || window.event;
? ? ? ? ? ? ? ? if(event.stopPropagation){
? ? ? ? ? ? ? ? ? ? event.stopPropagation();
? ? ? ? ? ? ? ? }else{
? ? ? ? ? ? ? ? ? ? event.cancelBubble = true;
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? menu.style.display = 'block';
? ? ? ? ? ? }
? ? ? ? ? ? for(var i=0;i<as.length;i++)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? as[i].onmouseover = function () {
? ? ? ? ? ? ? ? ? ? this.style.background = "#567";
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? as[i].onmouseout = function () {
? ? ? ? ? ? ? ? ? ? this.style.background = '#fff';
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? as[i].onclick = function (e) {
? ? ? ? ? ? ? ? ? ? e = e || window.event;
? ? ? ? ? ? ? ? ? ? if (e.stopPropagation) {
? ? ? ? ? ? ? ? ? ? ? ? e.stopPropagation();
? ? ? ? ? ? ? ? ? ? } else {
? ? ? ? ? ? ? ? ? ? ? ? e.cancelBubble = true;
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? menu.style.display = "none";
? ? ? ? ? ? ? ? ? ? title.innerHTML = this.innerHTML;
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? ? ? document.onkeydown = function (event) {
? ? ? ? ? ? ? ? event = event || window.event;
? ? ? ? ? ? ? ? if (event.keyCode == 38) {
? ? ? ? ? ? ? ? ? ? index--;
? ? ? ? ? ? ? ? ? ? if (index < 0) index = 0;
? ? ? ? ? ? ? ? } else if (event.keyCode == 40) {
? ? ? ? ? ? ? ? ? ? index++;
? ? ? ? ? ? ? ? ? ? if (index > 4) index = 4;
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? for (var i = 0; i < as.length; i++) as[i].style.background = '#fff';
? ? ? ? ? ? ? ? as[index].style.background = '#567';
? ? ? ? ? ? ? ? if (event.keyCode == 13) {
? ? ? ? ? ? ? ? ? ? if (index == -1) {
? ? ? ? ? ? ? ? ? ? ? ? title.innerHTML = title.innerHTML;
? ? ? ? ? ? ? ? ? ? ? ? menu.style.display = "block";
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? else {
? ? ? ? ? ? ? ? ? ? ? ? title.innerHTML = as[index].innerHTML;
? ? ? ? ? ? ? ? ? ? ? ? menu.style.display = "none";
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? ? ? document.onclick = function () {
? ? ? ? ? ? ? ? menu.style.display = "none";
? ? ? ? ? ? }
? ? ? ? ? ? //document.onkeydown = function (event) {
? ? ? ? ? ? // ? ?event = event || window.event;
? ? ? ? ? ? // ? ?console.log(event.keyCode);
? ? ? ? ? ? //}
? ? ? ? ? ??
? ? ? ? }
? ? </script>
我這個代碼在沒有任何選項(xiàng)被選中時,按下回車不做任何操作,但會報(bào)錯“Uncaught TypeError: Cannot read property 'style' of undefined”
求解~
2016-04-11
as[index].style.background = '#567';?
根據(jù)你的代碼,在沒有點(diǎn)擊上下鍵的情況下,index為初始值 -1 ,超過數(shù)組的臨界值,所以報(bào)錯