프로토 타입 : 선택기를 동적으로 구성하는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/1817444

  •  08-07-2019
  •  | 
  •  

문제

프로토 타입의 선택기에 변수를 전달하는 데 약간의 어려움이 있습니다. 변수를 선택 문자열로 전달할 수 있으므로 하나의 기능이 같은 종류의 많은 사람들에게 작동 할 수 있습니다.

현재 이것은 내가 기본적으로하고 싶은 일입니다.

function myFunct(var)
{
  $(var + 'add_form').hide()  //so inde the brackets would be ('#product1 #add_form') for example.
}

'var'를 선택기로 전달하는 함수로 전달할 수 있으므로 페이지의 많은 사람들에게 동일한 패턴을 숨길 수 있습니다.

따라야 할 길에 대한 아이디어는 크게 감사 할 것입니다.

도움이 되었습니까?

해결책

당신은 올바른 길을 가고 있습니다! 몇 가지 :

  1. var JavaScript 키워드입니다.원천), 변수의 이름을 지정하는 데 사용하지 마십시오
  2. ID로 요소를 쿼리하는 경우 (예 : #add_form)하고있는 동안 컨테이너 요소를 추가 할 필요가 없습니다.
  3. 요소를 쿼리하는 경우 class, 당신은 그것을 사용해야합니다 $$ 기능이 아닙니다 $ 기능
  4. 방법을 호출하려면 포장 세트를 반복해야합니다.
  5. Whitespace는 CSS Selector에서 중요하므로 선택기 구성에있는 것들을 포함하여 프로토 타입을 검색하도록하십시오. 이내에 부모 컨테이너 :

    function myFunct(parent) {
      $$(parent + ' .add_form').invoke('hide')
    }
    
    myFunct('#someparent'); // hides .add_form inside #someparent
    

다른 팁

작동해야합니다 ... 이름을 바꾸십시오 var 다른 것에.

function myFunct(yourVar)
{

  $$('#' + yourVar + ' .add_form').each(function(s){ s.hide(); });  // yourVar being the id of the container element

}

나는 '.'를 넣었다. Add_form 앞에서 동일한 ID로 여러 요소를 사용할 수 없으므로 클래스로 만드십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top