2011-01-21 2 views
0

Я нашел тему на S.O. похоже на то, что мне нужно здесь. jQuery removing an element and renumbering remaining elementsПеренумерующие divs с Dojo

В приведенном выше примере используется jQuery, который мы не используем, поэтому я не уверен, как перевести эту идею div, перенумеровав на Dojo.

Я унаследовал массовый веб-проект, который широко использует Dojo 1.5. Я полностью копаю то, что понимаю до сих пор, но у меня есть вопрос.

У нас есть страница с пронумерованными div, которые я успешно удаляю и удаляю из div. То, что мне нужно, - это divs в последовательном порядке. Вот пример того, что мне нужно заново Дива

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

В идеале в моем яваскрипта рутины, где я удалить DIV, я хотел бы переименовать их в порядке, поэтому они выглядят как это ....

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

Есть ли у кого-нибудь идеи, как я могу это снять? Я знаю, как успешно добавить новый div и сделать его уникальным, но идея переписывания divs для меня - полная тайна. Как всегда большое спасибо за помощь. Джейни.

ответ

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

Вы можете использовать что-то более конкретное, как запрос, а затем, используя только «DIV», и если вам нужно более общий идентификатор, а затем с «filter_9_values ​​_..._ Див» Вы должны были бы использовать регулярное выражение или разделите, чтобы построить нужную строку, но это должно дать вам основную идею о том, как перебирать набор элементов DOM и выполнять любые действия над ними, которые вы могли себе представить.

+0

Спасибо Том: Только проблема заключается в том, что он превращает КАЖДЫЙ div на мою страницу в новый номер. То, что мне нужно изменить, - это divs, которые соответствуют «filter_9_values_ (somenumber) _div». Любая идея, как я это снимаю? Еще раз спасибо. JW –

+0

@Jane Wilkie - как я уже писал, вам нужно подтянуть селектор 'dojo.query ('div')' для таргетинга divs, который вам нужен, чтобы divs у вас был общий родитель с конкретными класс? Вы можете использовать селектор, например 'dojo.query ('. ParentClass div')', или вы можете добавить к ним класс, чтобы вы могли легко их захватить с помощью селектора, такого как 'dojo.query ('div.className'). '. В основном селектор Dojo имеет почти такую ​​же структуру, что и селектор CSS –

+0

Awesome Tom! Спасибо! Я понял, что вскоре после этого. У тебя есть ответ, и я очень ценю это. , JW –

Смежные вопросы