javascript
  • object
  • methods
  • mootools
  • option
  • 2012-09-18 4 views 0 likes 
    0

    선택 옵션의 값을 미리 정의 된 변수와 동일하게 설정 한 다음 해당 방법을 사용할 수 있습니까? 다음 예는 다음과 같습니다 선택 옵션 값을 변수로 설정

    <select class='hidden' id='teamChoice' onchange='chooseTeam()'> 
    <option value="" selected>What team</option> 
        <option value='bostonCeltics'>Boston Celtics</option> 
    </select> 
    
    
    var bostonCeltics = { 
        conferencePA: "5=Conference=Eastern", 
        divisionPA: "5=Division=Atlantic" 
    } 
    
    function chooseTeam() { 
        switch ($('teamChoice').selectedIndex) { 
         case 0: 
          break; 
         case 1: 
          $('PAType=Name=Value3').innerHTML = this.conferencePA; 
          break; 
        } 
    } 
    

    가 이상적으로, 보스턴 셀틱스라는 제목의 옵션을 선택에, 나는 변수 객체 보스턴 셀틱스의 다른 속성에 액세스하는 방법을 사용할 수 있습니다

    . 이것이 가능한가?

    +0

    DOM 셀렉터처럼 보이지 않습니다. 어떤 라이브러리가'$'입니까? – Bergi

    +0

    jQuery를 사용하고 있습니까? – Pete

    +1

    @Pete : prototype.js와 비슷하지만, OP는 질문에 태그를 달아야합니다. – Bergi

    답변

    1

    저는 Mootools 사용자가 아니지만 당신이 무엇을보고 있는지 이해하고 올바른 방향으로 안내 할 수 있다고 생각합니다.

    자바에서는 배열 속성을 사용하여 개체 속성 디렉토리에 액세스하거나 OR을 사용하여 개체 속성 디렉토리에 액세스 할 수 있습니다. 다음, foo = { bar: 1, baz: 2 } 주어진 즉, 동일 : 당신이 varbostonCeltics을 정의하기 때문에

    console.log(foo.bar);  // prints 1 
    console.log(foo["bar"]); // prints 1 
    var s = "bar"; 
    console.log(foo[s]);  // prints 1 
    

    상황이 까다 얻을, 그것은 반드시 어떤 객체의 속성이 아니다 의미한다. 당신은 여전히 ​​eval의 사용은 권장하지 않습니다하지만 당신이 eval으로 원하는 것을 수행 할 수 있습니다 내가 부모 객체로 bostonCeltics를 이동할 것

    var s = "bostonCeltics"; 
    console.log(eval(s + ".conferencePA")); // prints "5=Conference=Eastern" 
    

    을 개인적으로, 그 속성에 액세스하는 배열 표기법을 사용하여, 당신이 원하는 것을 해야 할 일은 꽤 간단합니다. 재치하려면 :

    var teams = { 
        bostonCeltics = { 
         conferencePA: "5=Conference=Eastern", 
         divisionPA: "5=Division=Atlantic" 
        }  
        // more teams go here 
    } 
    
    function chooseTeam() { 
        var tc = $('teamChoice'); 
        var val = tc[tc.selectedIndex].value; 
        console.log(teams[val].conferencePA); // prints "5=Conference=Eastern" 
    } 
    

    여기 행동이의 jsFiddle입니다 : http://jsfiddle.net/sQvBZ/

    나는 이것이 당신이 요구하는지의 마음을 얻을 수 있기를 바랍니다.

    +0

    감사합니다. 매우 도움이되었습니다. 내가 선택한 방법은 'eval ($ ('teamChoice '). options [$ ('teamChoice '). selectedIndex] .value) .conferencePA;' 그것은 그것을 끝낸다. 고맙습니다. –

    +0

    문제 없습니다, 제임스. 도움이된다면, 내 대답을 수락하고 /하거나 +1을 주면서 사랑을 보여줄 수있었습니다! –

    +0

    +1 할 수는 있지만 답변을 수락했습니다! –

    관련 문제