Javascript.RU

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

Как получить значение которые были внесенны в td?
Добрый день!
Очень нужна помощь, не могу сообразить как получить значение с таблицы!
Проект делается на SharePoint
Есть таблица, которая заполняется, и если общее значение колонки Weight больше 100% нужно выводить это значение пользователю, но я не могу отловить само значение!
Все время пишет 0

Вот таблица :



Нужно получить последнее значение * Weight *

Вот структура









Все td которые мне нужны имеют одинаковые классы, id им поставить я не могу.

вот эти td

<td class="ms-vb-lastCell ms-cellstyle ms-vb2 ms-vb-lastCell">70</td>
<td class="ms-vb-lastCell ms-cellstyle ms-vb2 ms-vb-lastCell">20</td>
<td class="ms-vb-lastCell ms-cellstyle ms-vb2 ms-vb-lastCell">10</td>


Все они находятся в разных tr

вот такой скрипт не работает, прошу помочь мне получить их.
Уже второй день над этим кейсом парюсь

let td = document.getElementsByClassName('ms-vb-lastCell');
let sum = 0;


for(let i = 0; i < td.length; i++){
	sum += +td[i].innerHTML;
}
Изображения:
Тип файла: jpg table.jpg (7.4 Кб, 0 просмотров)
Ответить с цитированием
  #2 (permalink)  
Старый 01.08.2018, 13:13
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Работает
<table>
   <tr>
      <td>11111</td>
      <td class="ms-vb-lastCell ms-cellstyle ms-vb2 ms-vb-lastCell">70</td>
   </tr>
   <tr>
      <td>22222</td>
      <td class="ms-vb-lastCell ms-cellstyle ms-vb2 ms-vb-lastCell">20</td>
   </tr>
   <tr>
      <td>33333</td>
      <td class="ms-vb-lastCell ms-cellstyle ms-vb2 ms-vb-lastCell">10</td>
   </tr>   
</table>
<script>
let td = document.getElementsByClassName('ms-vb-lastCell');
let sum = 0;


for(let i = 0; i < td.length; i++){
	sum += +td[i].innerHTML;
};
alert(sum);
</script>
Ответить с цитированием
  #3 (permalink)  
Старый 01.08.2018, 14:02
Новичок на форуме
Отправить личное сообщение для Tomat Посмотреть профиль Найти все сообщения от Tomat
 
Регистрация: 01.08.2018
Сообщений: 2

В чистом документе все работает, но во время запуска на проекте мне все равно sum=0

Возможно потому что там много классов с ms-vb-lastCell?
Можно как-то сузить поиск? по типу

let td = document.getElementById('').getElementsByClassName ('ms-vb-lastCell');
??
Ответить с цитированием
  #4 (permalink)  
Старый 01.08.2018, 14:32
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Сообщение от Tomat
Возможно потому что там много классов с ms-vb-lastCell?
Если их там много, то просуммируются все. Если в каких-то из этих ячеек не цифры, то результат был бы NaN.

Больше похоже на то, что вы считаете сумму до того, как загрузилась таблица.
Попробуйте обернуть этот скрипт в
window.onload = function() {
// ваш скрипт
}


А сужать поиск надо, если вам нужно суммировать не все из этих много - либо добавлять какой-то характерный для нужных признак, либо выборка внутри родителя

Последний раз редактировалось Dilettante_Pro, 01.08.2018 в 14:35.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как получить значение из сторонней функции? Poveritov Общие вопросы Javascript 3 14.09.2016 15:42
Как получить значение data у элемента "а", в событии модального окна «show.uk.modal»? nathan jQuery 0 29.05.2016 08:30
initComponent: Как получить данные родителя и как получить store для вызова load()? Пролетарий ExtJS 76 04.07.2015 09:22
Как получить значение TD zsaz jQuery 3 16.11.2011 16:00
Как получить значение php переменной sanyalex AJAX и COMET 1 30.10.2011 22:45