2009-05-24 5 views
62

jQuery에서 동일한 ID를 가진 <div>을 모두 선택하려고합니다. 어떻게해야합니까? jQuery에서 특정 ID가있는 모든 요소를 ​​선택하는 방법은 무엇입니까?

나는이 시도하고

jQuery('#xx').each(function(ind,obj){ 
     //do stuff; 
}); 
+17

ID는 고유해야합니다. 수업을 이용하십시오. –

+22

누구나 알고 있습니다. 아무도 그의 질문에 대답하지 않았습니다. – Sid

+3

언제나 고유 한 ID를 가질 수는 없지만, 적어도 나는 항상 그런 ID를 가질 여유가 없습니다. 음, @mydoghasworms는 [질문] 대답을 아주 잘 지적했습니다. [1] : http://stackoverflow.com/questions/902839/jquery-select-divs-with-same-id#answer-6744674 – Fr0zenFyr

답변

36

다른 ID를 사용하지만 각 DIV에 동일한 클래스를 할당합니다.

<div id="c-1" class="countdown"></div> 
<div id="c-2" class="countdown"></div> 

이도 ('. 카운트 다운') jQuery를의 반환의 기반으로 ID를 재구성 할 수있는 이점이 있습니다. 길이


확인 대해 각각 여러 클래스를 추가 카운트 다운 타이머. IE :

<div class="countdown c-1"></div> 
<div class="countdown c-2"></div> 
<div class="countdown c-1"></div> 

그런 식으로 두 가지 장점을 모두 얻을 수 있습니다. 심지어 'IDS'를 반복 할 수 있습니다.

+0

Ballasacian : 나는 1..n의 id를 가진 n 개의 카운터를 가지고 있습니다. 따라서 각각의 id = c-1, id = c-2 등등이 있지만 이들 중 일부는 반복됩니다. 그래서 당신의 방법을 사용할 수 없습니다. 그들은 모두 같은 클래스 = '카운트 다운'을 가지고 있습니다 감사합니다 – mark

+0

왜 반복하고 싶습니까? 특히 고유 한 ID가 있어야합니다. – Ballsacian1

+0

Ballasacian : 감사합니다! 그것은 훌륭했다! 내가 원하는 방식으로 작동합니다! 왜 내가 전에 생각하지 않았는지 모르겠다! – mark

36

귀하의 문서가 동일한 ID로 두 개의 div가 포함되지 않아야 작동하지 않았다. 이것은 invalid HTML이며, 결과적으로 기본 DOM API는이를 지원하지 않습니다. HTML standard 가입일

:

이드 = 이름 [CS]이 특성은 엘리먼트의 이름을 지정 . 이 이름은 이어야하며 문서에서 고유해야합니다.

각 div에 다른 ID를 할당하고 $('#id1, #id2)을 사용하여 둘 다 선택할 수 있습니다. 또는 두 요소 (예 : .cls)에 동일한 클래스를 할당하고 $('.cls')을 사용하여 둘 다 선택하십시오.

+1

기본 getElementById() 함수 대부분의 jQuery 그리고 다른 라이브러리들은 실제 검색 거부를하여 결국 주어진 ID와 일치하는 첫 번째 (또는 무작위?) 요소를 반환하도록 요청하고이를 지원하는 것은 수동으로 DOM을 걷는 것을 의미합니다. 유효하지 않은 마크 업의 가치는 없습니다. – ironfroggy

+0

이 게시물에 관하여 : 흥미롭게도, getElementsByName (xxx) 자바 스크립트 함수가 있습니다. 복수형에 주목하십시오. 동일한 이름을 가진 요소가 두 개 이상있는 것은 ... – Jimbo

+1

@Jimbo - True하지만 내 대답은 'name'이 아니라 'id'가 같은 요소에 관한 것입니다. –

2

각기 다른 타이머에 고유 한 CSS 클래스를 할당 할 수 있습니까? 그렇게하면 여러 개의 div 요소에서 제대로 작동하는 CSS 클래스의 선택기를 사용할 수 있습니다.

+0

paul, 아니요 클래스를 사용하여 모든 타이머를 선택하고 카운트 다운 타이머를 초기화하고 스타일을 지정하기 때문에 각 타이머마다 고유 한 클래스를 사용할 수 없습니다. – mark

+1

** HTML ** 클래스. 사람들은 거의 모든 언어로 CSS 선택기를 사용하여 클래스를 사용합니다. – Quentin

1

두 개의 div가 고유 한 ID로 두 개의 div를 래핑 할 수도 있습니다. 그런 다음 $("#div1","#wraper1")하여 DIV를 선택하고 여기에 $("#div1","#wraper2")

당신은 이동 : 다른 정답 (예 : 클래스를 사용하여로) 여기가

<div id="wraper1"> 
<div id="div1"> 
</div> 
<div id="wraper2"> 
<div id="div1"> 
</div> 
371

있지만, 그것은이 할 수도 있고보기의 학문적 관점에서 동일한 ID를 가진 여러 div가 있으며 jQuery로 선택할 수 있습니다. 당신이

jQuery("#elemid") 

를 사용하는 경우

는 지정된 ID를 가진 첫 번째 요소를 선택합니다. 물론이 모든 속성에 선택을 위해 작동

jQuery("[id=elemid]") 

, 당신은 할 수 : 당신은 속성 (귀하의 경우 예를 들어 ID)에 의해 선택하면

그러나,이 같은 일치하는 모든 요소를 ​​반환 해당 태그를 지정하여 선택 범위를 더 구체화하십시오 (예 :귀하의 경우 사업부)

jQuery("div[id=elemid]") 
+119

질문에 답할 수있는 사람은 단 한 명뿐입니다. – wcm

+15

이것은 올바른 대답입니다. – d512

+6

적어도 누군가 jQuery에서 실제 물건을 만드는 방법을 알고 ... 어머나! 나는 이것을 알고 싶어 죽겠다. 나는 단순히 다른 사람들이 수업을 사용하는 방식을 취할 수는 없다. 나는 이미 다른 직업을 가지고있다. 우박 @mydoghasworms !! – Fr0zenFyr

4

$("div[id^=" + controlid + "]")이 같은 이름을 가진 모든 컨트롤을 반환합니다 첫번째 ID로 사업부를 선택하는이 시도하지만 당신은 그 텍스트를해야 존재하지를 확인해야합니다 모든 컨트롤에서

관련 문제