2012-12-19 3 views
7

페이지의 idname 속성을 변경하려고합니다.정규식 .find(), 결과 없음

var img = new RegExp('id*="launch_pad_image_slide_\d"', g) ; 
$('.slider-data').each(function(){ 
    $(this).find(img).attr('id', 'random stuff'); 
});    

가정은 .find 기능 내부 전체 id을 선택해야합니다입니다 :

id="launch_pad_image_slide_2" 

...하지만 그것은 작동하지 않습니다 내가 사용 코드는 다음입니다.

5 시간이 소요되고 화상이 끊깁니다. 제안? 기본적으로 필드가 삭제 될 때마다 jQuery는 double을 피하기 위해 루프를 반복하여 id/name 속성에 적절하게 번호를 매겨야합니다.

+1

만에, 당신의 문제를 해결해야 올렸습니다 무엇 @VisioN 증분 속성을 사용하는 향후 참조는 결코 당신이 경험 한 것과 같은 문제를 일으키는 우아한 해결책이 아닙니다. 대신 DOM 또는 배열을 통해 동일한 클래스 또는 이름을 가진 요소를 사용하고 트래버스합니다. –

+0

@RoryMcCrossan 활은 어디 있습니까? :) – VisioN

+0

@VisioN Winter Bash의 모자를 확인하십시오 : D –

답변

10

jQuery 선택기는 정규식 구문을 지원하지 않습니다. 그러나 Attribute Starts With Selector을 사용할 수 있습니다 :

$(this).find("[id^='launch_pad_image_slide_']").prop("id", "random stuff"); 

또 다른 방법은 filter에 요소 :

$(this).find("[id]").filter(function() { 
    return /^launch_pad_image_slide_\d$/.test(this.id); 
}).prop("id", "random stuff"); 
1

을보십시오이 :

$('img').each(function(){ 
      if ($(this).attr('id').indexOf("launch_pad_image_slide_") >= 0) 
       $(this).attr('id',Math.random()); 
    }); 
관련 문제