Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Использование текстового узла (https://javascript.ru/forum/dom-window/54746-ispolzovanie-tekstovogo-uzla.html)

pensill 30.03.2015 16:11

Использование текстового узла
 
Добрый.
Есть страница http://krotarost-wordpress-12.tw1.ru/forma-zakaza/
Я пытаюсь на ней реализовать следующее:
Взять цену из колонки "Цена (руб)" и вставить ее в "Стоимость (руб)" .
Проблема в том, что страница динамическая, и при добавлении нового товара он появляется на этой странице.
Пока написал так:
pr = $('.product-price__text').text();
$('.product-subtotal__text').text(pr);

где .product-price__text - это "Цена (руб)"
и .product-subtotal__text - "Стоимость (руб)"

Сейчас получается так, что в каждую ячейку в колонке "Стоимость (руб)" вписываются цены всех товаров.
Хелп

ksa 30.03.2015 16:43

Цитата:

Сообщение от pensill
Хелп

Начинай делать тестовый пример...

pensill 30.03.2015 17:08

Цитата:

Сообщение от ksa (Сообщение 363980)
Начинай делать тестовый пример...

Ну так то начал. Вопрос: если у меня будет несколько элементов с одним классом, а мне нужно по отдельности использовать их содержимое, то, как я понимаю, мне нужно всю мою выборку элементов засунуть в массив, и потом через for (var i = 0; i < array.length; i++) и $(this) брать содержимое по очереди. Как загнать выборку в массив?

рони 30.03.2015 17:28

Цитата:

Сообщение от pensill
Как загнать выборку в массив?

также через цикл $.each
это вам весёлая картинка для стимула

pensill 30.03.2015 17:29

Цитата:

Сообщение от рони (Сообщение 363988)
также через цикл $.each
это вам весёлая картинка для стимула

:blink: ок. Мастер!

pensill 30.03.2015 18:05

Дошел до этого:
var pr;
$('.product-price__text').each(function() {
pr = $(this).text();

});//end each
for (var i = 0; i < pr.length; i++) {
$('.product-subtotal__text').text(pr);
}//end for

Но в этом случае, используется только последняя цена. Что тут не правильНО?

laimas 30.03.2015 18:12

А зачем вам массив, а затем цикл for, вы же получили коллекцию необходимую, и циклом each обходите ее. В этом цикле и производите все операции.

pensill 30.03.2015 18:43

Цитата:

Сообщение от laimas (Сообщение 363993)
А зачем вам массив, а затем цикл for, вы же получили коллекцию необходимую, и циклом each обходите ее. В этом цикле и производите все операции.

Попробовал сделать как вы советовали:
$('.product-price__text').each(function(){
$('.product-subtotal__text').text($(this).text());
});
но все равно записывается в .text() только последнее значение

laimas 30.03.2015 18:56

Ну все правильно - при каждой итерации цикла вы записываете в элемент product-subtotal__text значение текущего product-price__text, по окончании и будет запись последнего.
А что нужно, сумму всех? Значит надо суммировать в переменную, а после цикла ее записывать. А на картинке еще и количество чего-то, значит надо перемножать и эти значения суммировать.

pensill 30.03.2015 19:13

Цитата:

Сообщение от laimas (Сообщение 363997)
Ну все правильно - при каждой итерации цикла вы записываете в элемент product-subtotal__text значение текущего product-price__text, по окончании и будет запись последнего.

Нужно для каждого product-subtotal__text записать его собственный product-price__text


Цитата:

Сообщение от laimas (Сообщение 363997)
А что нужно, сумму всех? Значит надо суммировать в переменную, а после цикла ее записывать. А на картинке еще и количество чего-то, значит надо перемножать и эти значения суммировать.

Это позже, пока хочу реализовать это


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