Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Как получить значение которые были внесенны в td? (https://javascript.ru/forum/events/74696-kak-poluchit-znachenie-kotorye-byli-vnesenny-v-td.html)

Tomat 01.08.2018 12:20

Как получить значение которые были внесенны в td?
 
Вложений: 1
Добрый день!
Очень нужна помощь, не могу сообразить как получить значение с таблицы!
Проект делается на 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;
}

Dilettante_Pro 01.08.2018 13:13

Работает
<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>

Tomat 01.08.2018 14:02

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

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

let td = document.getElementById('').getElementsByClassName ('ms-vb-lastCell');
??

Dilettante_Pro 01.08.2018 14:32

Цитата:

Сообщение от Tomat
Возможно потому что там много классов с ms-vb-lastCell?

Если их там много, то просуммируются все. Если в каких-то из этих ячеек не цифры, то результат был бы NaN.

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


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


Часовой пояс GMT +3, время: 11:30.