2010-04-07 4 views
4

jQuery에 간단한 $().id() 메서드가없는 이유를 아는 사람이 있는지 궁금합니다. $().attr('id')을 사용하여 이드를 당기는 것은 어리석은 것처럼 보입니다. 나는 id 속성이 일반적이며 자체 호출을하기에 충분히 유용하다고 생각한다.

답변

7

또 다른 문제는 jQuery가 일치하는 집합을 반환하기 때문에 일반적으로 둘 이상의 ID를 가질 수 있다는 것입니다. Id 함수를 구현하면 집합의 첫 번째 항목의 ID를 반환하여 연결 가능성을 손상시킬 수 있습니다.

$ ('selector')를 사용하면됩니다. get (0) .id;

+0

아, 이것이 좋은 이유입니다. – Jason

8

왜 엄청난 기능을 가진 네임 스페이스를 어지럽히 지요? 이미 attr()은 몇 가지 추가 문자로 동일한 작업을 수행 할 수 있다고 말씀하셨습니다. 모든 추가 기능에 대해 파일 크기에 바이트를 추가하고 JavaScript 파서에 시간을 추가합니다.

+2

나는 동의 할 의향이있다. 함수를 추가하는 것은 이제는 두 가지 다른 방법이 있다는 것을 의미하며 일관성을 선호합니다. –

+1

'$ ('someSelector')를 작성할 때마다 attr ('id')'도 공간을 차지합니다. 'length'가 똑같은 일을 할 때 왜 size()를 사용합니까? '$ ('div : contains (text)')'똑같은 일을 할 때 contains ('text')'? – Jason

+1

@Jason : 글쎄,'$ ('div, span : contains (text)')'와'$ ('div, span'). contains ('text')'분명히 다른 결과를 준다. 'size()'는 역사적인 이유로 인한 것일 수 있습니다. Btw가 정말 귀찮게하는 경우 ... 직접 함수를 작성하십시오.) –

1

시간을 절약하기 위해 그 기능을 정말로 원한다면 나는 그것을 새로운 방법으로 추가 할 것이라고 생각합니다. 의 라인을 따라 뭔가 :

$.fn.extend({ 
    id: function(){return this.attr('id');} 
}); 
$('.test').id(); 

하지만 제임스 웨스트 게이트는 컬렉션에 여러 반환이있는 경우, 당신은 당신이 그것을 제대로 처리하는지 확인해야하거나 다른 당신이 물건을 깰 수 말했다 같은 우려를 메아리 .

+0

예를 들어 주셔서 감사합니다. 난 당신이 하나의 요소가 반환 될 것으로 기대하고 도움이 될 수 있다고 생각하지만, 여러 경우 의미를 참조하십시오. 거기에 id를 검색하는 더 좋은 방법이 있거나 거의 유일한 방법은 .attr ('id')입니까? – Jason

+0

.attr ('id')이 가장 쉬운 방법이라고 생각합니다.다른 방법이 있지만 내가 추천할만한 방법은 없습니다. 이 요소가 반환 된 요소 하나에서만 사용되는지 확인하려면 해당 요소를 검사 할 때 추가 할 수 있습니다. 나는 이걸로 너무 많이 놀아 보지 못했고, 나는 그것이 존재한다는 것을 알고있다. – FallenRayne

관련 문제