Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Применение библиотек > увличить на 1


Автор: evya 26.1.2011, 21:26
Код

<input type="text" id="r_1"/>
<input type="text" id="r_2"/>
<input type="text" id="r_3"/>
<input type="text" id="r_4"/>
<input type="text" id="r_5"/>



Подскажите как увеличить на 1 все элементы начиная с r

Добавлено через 4 минуты и 39 секунд
увеличить id
т.е. было r_1 а должно стать r_2
и так далее

Автор: bars80080 26.1.2011, 22:28
ну, прежде всего вопрос: зачем?
id - это базовый идентификатор, изменение его - по определению ошибка в алгоритме


в jquery должно быть так:

Код

for(var i = 9; i > 0; i--) {
    $('#r_'+ i).each(function() { $(this).attr('id', (i + 1)); });
}


но без понятия зачем, я не могу сказать, как определить количество этих r_n

Автор: evya 27.1.2011, 07:16
колчисество я определю сам 



дело в том что есть таблица со значениями 
и есть кнопка вставить дополнительное значение по середение. 
поэтому и задача стояла увеличить последующие при вставке

Автор: bars80080 27.1.2011, 14:52
такие вещи лучше делать не опираясь на id. вставить значение можно и простыми методами before, after после или перед нужным элементом, ориентируясь по порядковому номеру

Автор: evya 27.1.2011, 17:06
почему у меня последний элемент не 6 а 51,
а последущие нормальные 4,3,2

Код

for(var i =last; i > first; i--) {
var plus=i+1;
 $('#r_'+ i).each(function() { $(this).attr('id', ('#r_'+plus)); });
    
}


Добавлено через 7 минут и 52 секунды
решил пробелму поставив евал

Автор: bars80080 27.1.2011, 18:50
Цитата(evya @  27.1.2011,  16:06 Найти цитируемый пост)
почему у меня последний элемент не 6 а 51,

одна из переменных изначально принимается строкой. надо принудительно обозначить тип (числовой) - parseInt() или *1

а так как есть иное решение, то eval() лучше не использовать

Автор: evya 27.1.2011, 19:00
а можно на примере 
-тип (числовой) 
-и что означает *1

Автор: bars80080 27.1.2011, 20:04
Код

last *= 1;
first *= 1;
var plus = 0;
for(var i = last; i > first; i--) {
 plus = i +1;
 $('#r_'+ i).each(function() { $(this).attr('id', ('#r_'+plus)); });
    
}


Цитата(evya @  27.1.2011,  18:00 Найти цитируемый пост)
то означает *1 

a *= 1
то же самое, что
a = a * 1

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)