ID에 대한 변수를 사용하여 jQuery에서 요소를 어떻게 선택합니까?


100

예를 들어 다음은 id = "2"인 부서를 선택합니다.

row = $("body").find("#2");

이렇게하려면 어떻게해야하나요?

row_id = 5;
row = $("body").find(row_id);

위의 구문은 오류를 생성합니다. 나는 jQuery 문서를 확인하고 성공하지 못했습니다.


6
와, 정확히 똑같은 다섯 가지 대답 ...
Zifre 2009-04-13

답변:


189
row = $("body").find('#' + row_id);

더 중요한 것은 추가 body.find를 수행해도 성능에 영향을 미치지 않습니다. 이를 수행하는 적절한 방법은 간단합니다.

row = $('#' + row_id);

46

가장 짧은 방법은 다음과 같습니다.

$("#" + row_id)

검색을 본문으로 제한하는 것은 아무런 이점이 없습니다.

또한, id특히 이름을 지정해야하는 다른 데이터 세트가있는 경우 s의 이름 을 더 의미있는 것으로 바꾸는 것을 고려해야합니다 (Paolo의 답변에 따라 HTML을 준수 함).


나는 간결함을 좋아합니다. 나는 이것을 qTip2 툴팁과 함께 사용했으며 훌륭하게 작동합니다. 사용자 입력에 대한 응답과 같이 이러한 "적시"를 많이 생성하는 경우 성능 저하가 무엇인지 조금 궁금합니다.
PJ Brunet

26

이렇게하면 $('body').find();ID에 의해 찾을 때 필요하지 않습니다; 성능 향상이 없습니다.

또한 숫자로 시작하는 ID는 유효한 HTML아닙니다 .

ID 및 NAME 토큰은 문자 ([A-Za-z])로 시작해야하며 그 뒤에 문자, 숫자 ([0-9]), 하이픈 ( "-"), 밑줄 ( "_")이 올 수 있습니다. , 콜론 ( ":") 및 마침표 ( ".").



1

코드에 두 가지 문제가 있습니다.

  1. ID로 요소를 찾으려면 "#"접두사를 붙여야합니다.
  2. 문자열이 필요할 때 찾기 함수에 숫자를 전달하려고합니다 ( "#"+ 5를 전달하면 먼저 5를 "5"로 변환하므로이 문제가 해결됩니다).

0

나는 jQuery에 대해 많이 모르지만 이것을 시도하십시오.

row_id = "#5";
row = $("body").find(row_id);

편집 : 물론 변수가 숫자이면 "#"앞에 추가 해야합니다.

row_id = 5
row = $("body").find("#"+row_id);
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.