2011-04-25 5 views
0
window.onload = initAll; 

function initAll() { 
    var allLinks = document.getElementsByTagName("a"); 

    for (var i=0; i<allLinks.length; i++) { 
     if (allLinks[i].className.indexOf("menuLink") > -1) { 
      allLinks[i].onclick = toggleMenu; 
     } 
    } 
} 

function toggleMenu() { 
    var startMenu = this.href.lastIndexOf("/")+1; 
    var stopMenu = this.href.lastIndexOf("."); 
    var thisMenuName = this.href.substring(startMenu,stopMenu); 

    var thisMenu = document.getElementById(thisMenuName).style; 
    if (thisMenu.display == "block") { 
     thisMenu.display = "none"; 
    } 
    else { 
     thisMenu.display = "block"; 
    } 

    return false; 
} 
나는 두 가지 질문

lastIndexOf의 기능은 무엇입니까?

this.href.lastIndexOf("/")+1;this.href.lastIndexOf(".");은 무엇입니까 한

?

+1

는 ['String.lastIndexOf'] (https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/lastIndexOf) –

답변

2

lastIndexOf()는 검색중인 문자열에서 문자열의 마지막 항목을 찾습니다.

따라서 첫 번째 lastIndexOf()는 링크의 href 속성에서 마지막 "/"를 찾습니다. 두 번째 것은 "."의 마지막 발생을 찾습니다. href 속성에.

2

lastIndexOf 함수는 문자열 내에서 문자 (또는 하위 문자열)의 마지막 발생 위치를 결정하는 데 사용됩니다. 당신이 경로 "http://www.mywebsite.com/foo/bar.html"이 경우, 코드는 다음을 수행 할 코드에 따라서

var helloWorldString = "Hello, World"; 
var firstOccurance = helloWorldString.indexOf('o'); // returns 4 
var lastOccurance = helloWorldString.lastIndexOf('o'); // returns 8 

: : 예를 들어

//Find the last "/" character in the URL and adds one to the result. 
var startMenu = this.href.lastIndexOf("/") + 1; 

//Find the last "." character in the URL. 
var stopMenu = this.href.lastIndexOf("."); 

//get the file name from the URL 
var thisMenuName = this.href.substring(startMenu,stopMenu); 

위 URL 예의 경우 thisMenuName에는 "bar"가 포함됩니다. HTH

+0

고맙습니다, 칼 니콜 ITZ 놀라운에서보세요. .... 고맙다. – user721487

관련 문제