Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.01.2019, 14:23
Новичок на форуме
Отправить личное сообщение для messiah Посмотреть профиль Найти все сообщения от messiah
 
Регистрация: 13.01.2019
Сообщений: 8

Пропуск Эл массива через parseInt()
В html коде:
[td id='var1']число[/td] -
[td id='var12']число[/td].

Есть массив:
let arr = ['var1', 'var2'....'var12'];

Мне надо каждый val преобразовать в число (это же строки пока) и записать его в соотв. переменные var:
let var1 = parseInt($('td#var1').html());

Пишу:
for(let i= 0; i <= arr.length; i++) {
parseInt($( + " ' td#" + arr[item] + " ' " + ).html());
}
Не срабатывает. Пишу:

arr.forEach(function(item, i, arr) {
parseInt($( + " ' td#" + arr[item] + " ' " + ).html());
});
Тоже не помогает. Подскажите что не так? Подключена jQuery-2.1.0.min.js

Последний раз редактировалось messiah, 13.01.2019 в 14:37.
Ответить с цитированием
  #2 (permalink)  
Старый 13.01.2019, 14:31
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,733

Каждое значение в отдельную переменную складывать глупо, да и не так это просто.
Можно использовать eval, что не есть хорошо; можно гадить в глобальную ОВ, что также не хорошо.
Лучше создать массив и складировать значения в него.
Зачем у вас + перед селектором везде стоит?

const values=$('[id^="var"]').map(function(){
     return parseInt(this.textContent);
}).toArray();

Последний раз редактировалось Nexus, 13.01.2019 в 14:34.
Ответить с цитированием
  #3 (permalink)  
Старый 13.01.2019, 14:31
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

$('td[id^="var"]').each(function(){
	window[this.id] = this.textContent
});
Ответить с цитированием
  #4 (permalink)  
Старый 13.01.2019, 14:44
Новичок на форуме
Отправить личное сообщение для messiah Посмотреть профиль Найти все сообщения от messiah
 
Регистрация: 13.01.2019
Сообщений: 8

var это образное значение td. Они по разному называются все 12 значений в ячейках. + Чтоб отделить js от селектора
Ответить с цитированием
  #5 (permalink)  
Старый 13.01.2019, 14:47
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
	<table>
		<tr>
			<td id="var1">10</td>
			<td id="var2">20</td>
			<td id="var3">30</td>
			<td id="var4">40</td>
			<td id="var5">50</td>
		</tr>
	</table>

	<script>
		$('td[id^="var"]').each(function () {
			window[this.id] =+this.textContent
		});
		console.log(var1,var2,var3);

	</script>

я это понял, вы теги напишите нормально и будет работать
Ответить с цитированием
  #6 (permalink)  
Старый 13.01.2019, 14:51
Новичок на форуме
Отправить личное сообщение для messiah Посмотреть профиль Найти все сообщения от messiah
 
Регистрация: 13.01.2019
Сообщений: 8

Массив такой:
let janArr = ['prem1', 'nous1', 'ovd1', 'ovz1', 'pnvl1', 'secr1', 'szvz1', 'qual1', 'naem1', 'mat1', 'nal1', 'sum1'];
Мне надо из ячейки td (prem1...) взять числовое значение, пропарсинтить и записать уже число это в переменную prem1
Ответить с цитированием
  #7 (permalink)  
Старый 13.01.2019, 14:52
Новичок на форуме
Отправить личное сообщение для messiah Посмотреть профиль Найти все сообщения от messiah
 
Регистрация: 13.01.2019
Сообщений: 8

Я с телефона. Много писать.
Ответить с цитированием
  #8 (permalink)  
Старый 13.01.2019, 14:53
Новичок на форуме
Отправить личное сообщение для messiah Посмотреть профиль Найти все сообщения от messiah
 
Регистрация: 13.01.2019
Сообщений: 8

И так для каждой переменной в массиве
Ответить с цитированием
  #9 (permalink)  
Старый 13.01.2019, 14:58
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

janArr.forEach(function(el){
		window[el] = +document.getElementById(el).textContent
	});
Ответить с цитированием
  #10 (permalink)  
Старый 13.01.2019, 15:01
Новичок на форуме
Отправить личное сообщение для messiah Посмотреть профиль Найти все сообщения от messiah
 
Регистрация: 13.01.2019
Сообщений: 8

Вообщем идея такая. Я получаю зп и написал таблицу на html, где колонки это каждая надбавка и последняя колонка полученная сумма. Пока все работает, только много кода. Я хочу его сделать меньше просто. Итоге сценарий берет сумму каждой надбавки из каждой td, складывает их и сравнивает с общей полученной суммой. Если не соответствует - .show() окно, где сказано на сколько. Для их сложения я и хочу их парсинтить в числа.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача имени массива через параметр функции Самовар Общие вопросы Javascript 7 24.08.2018 13:28
В хтмл выводится запятая - данные из массива через цикл MC-XOBAHCK Общие вопросы Javascript 14 13.06.2018 20:53
Нужна помощь в создании двумерного массива через завыкание JStudent Общие вопросы Javascript 5 11.04.2018 08:18
Сортировка массива по возрастанию другого массива. vas88811 Events/DOM/Window 4 12.01.2014 10:31
XMLHTTPRequest передача имя через POST dds AJAX и COMET 0 14.08.2008 14:44