2011-01-21 5 views
0

S.O.에 스레드가 있습니다. 내가 여기서 필요한 것과 비슷합니다. jQuery removing an element and renumbering remaining elementsDojo로 div 번호 다시 매기기

위의 예제는 사용하지 않는 jQuery를 사용하므로 div 번호를 매기는이 아이디어를 Dojo로 번역하는 방법을 모르겠습니다.

Dojo 1.5를 광범위하게 사용하는 방대한 웹 프로젝트를 계승했습니다. 나는 그것이 지금까지 이해하고있는 것을 완전히 파헤 쳤지 만, 나는 질문을 가지고있다.

번호가있는 div가있는 페이지가있어서 div를 삭제하고 삭제할 수 있습니다. 비록 divs가 순차적으로 필요합니다. 여기에 내가 다시 DIV를 위해

<div id="filter_9_values_2_div"> 
<div id="filter_9_values_1_div"> 
<div id="filter_9_values_4_div"> 

을 이상적으로 내 자바 스크립트 루틴에서 내가 사업부를 삭제할 경우 필요의 예입니다, 나는

.... 그들은 다음과 같이 있도록 순서대로 이름을 변경하고 싶습니다
<div id="filter_9_values_1_div"> 
<div id="filter_9_values_2_div"> 
<div id="filter_9_values_3_div"> 

아무도 내가 이걸 어떻게 풀 것인가? 성공적으로 새 div를 추가하고 고유하게 만드는 방법을 알고 있지만 div를 다시 작성하는 아이디어는 완전한 신비입니다. 언제나처럼 도움에 미리 감사드립니다. 제니.

답변

2
dojo.query('div').forEach(function(el, index){ 
    dojo.attr(el, "id", "filter_9_values_" + (index + 1) + "_div"); 
}); 

당신보다는 그냥 "DIV"을 사용하고보다 일반적인 ID를 필요한 경우 오히려 다음 "filter_9_values ​​_..._ 사업부"를 갖는 쿼리와 더 구체적인 뭔가를 사용하는 것이 좋습니다 당신은 정규 표현식을 사용해야 할 것 또는 split을 사용하여 원하는 문자열을 만들지 만 DOM 요소 컬렉션을 반복하고 상상할 수있는 액션을 수행하는 기본적인 아이디어를 얻을 수 있습니다.

+0

감사합니다. Tom : 문제는 내 페이지의 모든 div를 새 번호로 바꾸는 것입니다. 다시 번호를 매기려면 "filter_9_values_ (somenumber) _div"와 일치하는 div가 있어야합니다. 내가 그걸 어떻게 풀어 냈는지 알기나 해? 너무 많이 다시 한번 감사드립니다. JW –

+0

@ Jane Wilkie - 내가 작성한대로 div를 대상으로하기 위해 선택기'dojo.query ('div')'를 조여야 만합니다. 특정 div 수업? 'dojo.query ('parentClass div')'와 같은 선택기를 사용하거나 클래스를 추가하여'dojo.query ('div.className')와 같은 선택자로 모든 객체를 쉽게 캡쳐 할 수 있습니까? '. 기본적으로 dojo 선택자는 CSS 선택기와 거의 같은 구조를 가지고 있습니다 –

+0

굉장 Tom! 정말 고마워! 나는 그것을 게시 한 후 곧 깨달았다. 당신은 답을 얻었고 정말 고맙습니다. . JW –

관련 문제