id가 시작하는 html 요소 찾기


89

내 질문은 다음과 같습니다.

여러 페이지에 HTML 코드가 있으며 각 페이지에서 일부 데이터를 표시하기 위해 JQgrid (jquery 그리드)를 사용했습니다. 각 페이지에서 JQgrid를 보유하는 요소의 이름이 "LIST_xxx"라는 것을 알고있었습니다. 이제 각 페이지에서 "LIST_XXXX"요소를 가져 와서 몇 가지 작업을 수행하는 자바 스크립트를 만들어야합니다. ID로 요소를 검색 할 수 있지만 이전에 언급 한 것처럼 ID의 초기 부분 만 알 수 있습니다.

$('#list_[XXXX]')... --> The part surrounded by [] is variable on each page, i want to discriminate that.

내가 분명히했으면 좋겠어. 감사.

답변:


170

시험

$('div[id^="list_"]')

작동합니다


jquery 문서보다 해당 참조에 대한 훨씬 더 나은 레이아웃.
Yuriy Faktorovich

이것은 잘 작동합니다 ... if ($ ( 'div [id $ = "'+ val + '"]'). length> 0) 무언가를 실행하는 것과 같은 특정 값으로 끝나는 ID를 찾는 데 사용했습니다.
raphie 2013

음, 위의 간단한 컨트롤 ID에서 잘 작동합니다. "txt_0_city", "txt_1_city", "txt_2_city", "txt_3_city"등과 같은 ID를 가진 컨트롤이있는 시나리오에서 작동하도록 만드는 방법과 "txt _ * _ city"와 같은 ID를 가진 모든 요소의 개수를 원합니다. "
Rajiv Bhardwaj

@Rajiv html을 제어 할 수 있다면 각 요소에 "city"와 같은 클래스를 추가하는 것이 좋습니다. 그런 다음 쉽게 계산할 수 있습니다.
Glen Little

당신이 HTML을 개선 할 수없는 경우 @Rajiv 후 체크 아웃 api.jquery.com/multiple-attribute-selector을 - 당신은 선택기를 결합 할 수 있습니다. 예 : $ ( "span [id ^ = 'txt _'] [id $ = '_ city']")
Glen Little

22

다음 과 같이 selector로 시작 하는 속성 을 사용해야합니다 .

$('[id^=list_]').whatever()

음, 위의 간단한 컨트롤 ID에서 잘 작동합니다. "txt_0_city", "txt_1_city", "txt_2_city", "txt_3_city"등과 같은 ID를 가진 컨트롤이있는 시나리오에서 작동하도록 만드는 방법 및 "txt _ * _ city"와 같은 ID를 가진 모든 요소의 개수를 원합니다. "
Rajiv Bhardwaj

안녕하세요 @Rajiv, stackoverflow에 오신 것을 환영합니다. 나는 귀하의 의견의 다른 사본에 응답했습니다.
글렌 리틀

8

해당 요소에 공통 클래스 이름 또는 쿼리 할 수있는 다른 속성을 지정하십시오.


안녕하세요, 귀하의 답변에 감사드립니다. 귀하의 제안에 대한 문제는 JQgrid를 보유하는 여러 테이블이있을 수 있으므로 "LIST_customer", "LIST_carrier"... 등이있을 수 있습니다. 그리고 초기 ID 부분 인 "LIST_"만을 기준으로 두 가지를 모두 선택해야합니다.
lidermin

1
이해하지만 모두 List 클래스로 만드는 것이 나에게 더 읽기 쉽고 설명적인 접근 방식처럼 보입니다. 각자에게 다른 답변에서 볼 수 있듯이 jquery에서 항상 start with selector를 사용할 수 있습니다.
Yuriy Faktorovich

@lidermin Yuriy가 말하는 것은 효과가 있어야합니다. 접두사로 list_가 있으므로 "list"와 같은 컨트롤에 클래스를 추가하지 않는 이유는 무엇입니까? 따라서 해당 클래스를 선택하면 각 컨트롤이 표시됩니다. 이것이 가장 효율적인 방법입니다.
Josh Mein

Yuriy의 대답이 작동합니다. 모든 "LIST_XXXX"요소에 동일한 클래스 (예 : "ListsINeedToFind")를 추가 한 다음를 사용하여 조회 할 수 $('.ListsINeedToFind')있습니다.
Annabelle

클래스는 같지만 ID가 다른 여러 요소가 필요한 경우가 있습니다.
Vincent


1

특정 ID / 문자로 끝나는 요소를 얻으려면

find('[id$=someid]')

특정 ID / 문자로 시작하는 요소를 얻으려면

find('[id*=anotherid]')

특정 ID / 문자와 일치하는 요소를 얻으려면

find('[id^=id]')
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.