jQuery 선택기의 와일드 카드


668

와일드 카드를 사용하여 id가 "jander"로 시작하는 모든 요소의 id를 얻으려고합니다. 나는 시도했다 $('#jander*'), $('#jander%')그러나 그것은 작동하지 않습니다 ..

요소 클래스를 사용하여 해결할 수 있지만 와일드 카드를 사용하는 것도 가능합니다 ??

<script type="text/javascript">

  var prueba = [];

  $('#jander').each(function () {
    prueba.push($(this).attr('id'));
  });

  alert(prueba);


});

</script>

<div id="jander1"></div>
<div id="jander2"></div>

2
이것은 jQuery (또는 더 정확하게 Sizzle 엔진)에 관한 질문입니다.
피터 외네 홀름

1
참고 사항 : jQuery 또는 Sizzle이 브라우저 기능을 사용할 수 있으므로 클래스로 처리하는 것이 훨씬 빠릅니다 (현대 브라우저에서는 큰 차이가 없습니다).
Felix Kling


7
또한 중요한 점 $("[id*=jander]")은 문자열 ander 더를 포함하는 ID를 가진 모든 요소를 ​​선택 한다는 것입니다.
가브리엘 라이언 나미 아스

답변:


1279

"jander"로 시작하는 모든 요소를 ​​가져 오려면 다음을 사용해야합니다.

$("[id^=jander]")

"잔더"로 끝나는 사람들을 얻으려면

$("[id$=jander]")

JQuery 문서 도 참조하십시오


22
문서는이 예제를 제공합니다.$('input[name^="news"]').val('news here!')
Brenden

5
코드는 의도 한대로 작동합니다. 큰 따옴표가 필요하지 않습니다. 닫는 따옴표가 누락 될 가능성이 높아지고 읽기가 어렵습니다.
nico

4
흥미롭게도 @nico, 워드 프로세서는 작동 말할 특성id기술적 A는 부동산 , 라인이 약간 흐리게,하지만 난 속성과 특성에 대한 최신 변경 사항이 hanlded하는 더 최근의 jQuery 버전 (예 : 1.9) 방법으로 추측 두 가지와 관련하여 (적어도 일부) 속성에 속성 선택기를 사용할 수 있습니다.
johntrepreneur 2016 년

선택한 짝수 중 짝수를 선택하려면 어떻게해야합니까? 예를 들어 : 현재 .col-lg-4:even div:nth-child(1)같은 일을하고 싶다면 어떻게해야합니까? "[class^=.col-lg-]:even"? (저는 작동하지 않는 것 같습니다)
Luis Robles

"class $ = ..."와 함께 사용하면 개별 클래스 이름이 아닌 항목의 클래스 목록을 검색합니다. 따라서 검색중인 클래스가 해당 항목의 마지막 클래스 인 경우에만 적중합니다. Chrome 이외의 테스트를하지 않았습니다. 그리고 결함이 jQuery에 있는지 또는 jQuery에 대한 나의 기대에 있는지 확실하지 않습니다.
Roger Krueger

115

제목에서 와일드 카드를 제안하므로 다음을 사용할 수도 있습니다.

$(document).ready(function(){
  console.log($('[id*=ander]'));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="jander1"></div>
<div id="jander2"></div>

이것은 어디에서든 주어진 문자열을 선택합니다 id.


39

jQuery로 시작해보십시오

선택기 '^ ='

[id^="jander"]

그래도 물어봐야합니다. 왜 수업을 사용 하여이 작업을 수행하고 싶지 않습니까?


2
컨텍스트를 추가하기 위해 ModelForm 클래스가 모델을 기반으로 ID를 지시하고 이와 같은 그룹화를 허용하지 않는 Django를 사용하고 있기 때문에 동일한 솔루션을 찾고 있습니다. 즉, HTML이 제어 할 수 없습니다.
Christian Mann

이 기능은 ASP.Net WebForms, 특히 라디오 및 확인란 목록으로 작업 할 때 유용합니다.
DavidScherer

35

수업의 경우 다음을 사용할 수 있습니다.

div[class^="jander"]

이 작업을 수행 할 수 없습니다. 잘못된 구문에 대한 메시지를 받으십시오.
stian

14

와일드 카드 일치에서 ID얻으려면 다음 을 수행하십시오.

$('[id^=pick_]').click(
  function(event) {

    // Do something with the id # here: 
    alert('Picked: '+ event.target.id.slice(5));

  }
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="pick_1">moo1</div>
<div id="pick_2">moo2</div>
<div id="pick_3">moo3</div>


2
"event.target.id"대신 이것도 작동합니다 : $ (this) .attr ( "id")
PJ Brunet

10

더 복잡한 id 문자열이 있으면 큰 따옴표가 필수입니다.

예를 들어 다음과 같은 ID가있는 경우 id="2.2"올바른 액세스 방법은 다음과 같습니다.$('input[id="2.2"]')

안전상의 이유로 가능한 한 큰 따옴표를 사용하십시오.

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