Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.12.2019, 02:54
Аспирант
Отправить личное сообщение для svileff Посмотреть профиль Найти все сообщения от svileff
 
Регистрация: 25.11.2019
Сообщений: 39

Необходимо добавить еще один DIV. И получить значение.
Открываю корзину и имею такую структуру:
<div class="t706__cartwin-products">
<div class="t706__product" data-cart-product-i="0">
<div class="t706__product-amount t-descr t-descr_sm">1 210&nbsp;р.</div>
</div>
<div class="t706__product" data-cart-product-i="1">
<div class="t706__product-amount t-descr t-descr_sm">2 110&nbsp;р.</div>
</div>
<div class="t706__product" data-cart-product-i="2">
<div class="t706__product-amount t-descr t-descr_sm">567&nbsp;р.</div>
</div>
</div>

Необходимо добавить еще один DIV. И получить значение (выделил). Поместить его в добавленный DIV c -20%

Получить примерно надо такое:

<div class="t706__product" data-cart-product-i="0">
<div class="t706__product-amount t-descr t-descr_sm">1 210&nbsp;р.</div>
<div class="t706__product-amount-sale">968&nbsp;р.</div>
</div>

Вот наработки по добавлению DIV. Но почему то не выходит. Нужна помощь.

<script>
$( document ).ready(function() {

var number = 0;
//Функция создания DIV
function createinput(){
setTimeout(function() {
var spisok = $(".t706__cartwin-products").length;
for (var x = 0; x <= spisok; x++) {
$('.t706__cartwin-products:eq('+x+')').append('<div class="t706__product-amount-sale t-descr t-descr_sm">1 210&nbsp;р.</div>');
number = $('.t706__cartwin-products:eq('+x+')').html();
};
};

//При открытии корзины запускаем функцию
$( "[href = #order] , .t706__carticon-wrapper" ).click(function() {createinput();});
</script>
Ответить с цитированием
  #2 (permalink)  
Старый 07.12.2019, 06:45
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Зачем setTimeout?

t706__cartwin-products и надо полагать здесь 706, это ID продукта, а значит такой в корзине будет только один, зачем цикл? Этот же элемент уже имеет <div class="t706__product-amount t-descr t-descr_sm">1 210&nbsp;р.</div>, зачем же его добавлять и при этом не понятно как вы хотите получить <div class="t706__product-amount-sale">968&nbsp;р.</div>?

Последний раз редактировалось laimas, 07.12.2019 в 06:52.
Ответить с цитированием
  #3 (permalink)  
Старый 07.12.2019, 09:24
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

svileff,
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[html run]
... минимальный код страницы с вашей проблемой
[/html]

О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
Ответить с цитированием
  #4 (permalink)  
Старый 07.12.2019, 09:25
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

svileff,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

  <script>
$(function() {
function numberWithCommas(str) {
    return (+str).toFixed(2).replace(/(\d+)(\.\d+)?/g, function (c, b, a) {
    return b.replace(/(\d)(?=(\d{3})+$)/g, "$1 ") + a
});
}

$(".t-descr_sm").each(function(i, el) {
var num = (el.textContent.replace(/[^0-9.]/g, "") || 0) * 0.8;
var txt = numberWithCommas(num);
$(el).after(`<div class="t706__product-amount-sale">${txt}&nbsp;р.</div>`)
})
});
  </script>
</head>

<body>
<div class="t706__cartwin-products">
<div class="t706__product" data-cart-product-i="0">
<div class="t706__product-amount t-descr t-descr_sm">1 210&nbsp;р.</div>
</div>
<div class="t706__product" data-cart-product-i="1">
<div class="t706__product-amount t-descr t-descr_sm">2 110&nbsp;р.</div>
</div>
<div class="t706__product" data-cart-product-i="2">
<div class="t706__product-amount t-descr t-descr_sm">567&nbsp;р.</div>
</div>
</div>
</body>
</html>
Ответить с цитированием
  #5 (permalink)  
Старый 07.12.2019, 23:20
Аспирант
Отправить личное сообщение для svileff Посмотреть профиль Найти все сообщения от svileff
 
Регистрация: 25.11.2019
Сообщений: 39

У меня DIV добавился не в том месте где надо и 0.00 показывает. Видима я структуру не всю указал. Вот вся структура корзины.

<div class="t706__cartwin-products">
<div class="t706__product" data-cart-product-i="0">
<div class="t706__product-thumb">
<div class="t706__product-imgdiv" style="background-image:url(https://static.tildacdn.com/tild3632-3963-4232-b737-393335343436/903417_S.jpg);">
</div>
</div>
<div class="t706__product-title t-descr t-descr_sm">Elizavecca Milky Piggy Hell-Pore Longolongo Gronique Gold Mask Pack<div style="opacity:0.7;font-size:12px;font-weight:400;">903417</div>
</div>
<div class="t706__product-plusminus t-descr t-descr_sm">
<span class="t706__product-minus">
<img src="https://static.tildacdn.com/lib/linea/c8eecd27-9482-6c4f-7896-3eb09f6a1091/arrows_circle_minus.svg" style="width:16px;height:16px;border:0;"></span>
<span class="t706__product-quantity">3</span><span class="t706__product-plus"><img src="https://static.tildacdn.com/lib/linea/c47d1e0c-6880-dc39-ae34-521197f7fba7/arrows_circle_plus.svg" style="width:16px;height:16px;border:0;"></span>
</div>
<div class="t706__product-amount t-descr t-descr_sm">3 861&nbsp;р.</div>
<div class="t706__product-del"><img src="https://static.tildacdn.com/lib/linea/1bec3cd7-e9d1-2879-5880-19b597ef9f1a/arrows_circle_remove.svg" style="width:20px;height:20px;border:0;">
</div>
</div>

<div class="t706__product" data-cart-product-i="1">
<div class="t706__product-thumb">
<div class="t706__product-imgdiv" style="background-image:url(https://static.tildacdn.com/tild6130-6561-4633-a631-306663633061/904117_S.jpg);">
</div>
</div>
<div class="t706__product-title t-descr t-descr_sm">Elizavecca Milky Piggy Vitamin C 21% Ample Mask<div style="opacity:0.7;font-size:12px;font-weight:400;">904117</div>
</div>
<div class="t706__product-plusminus t-descr t-descr_sm"><span class="t706__product-minus"><img src="https://static.tildacdn.com/lib/linea/c8eecd27-9482-6c4f-7896-3eb09f6a1091/arrows_circle_minus.svg" style="width:16px;height:16px;border:0;"></span><span class="t706__product-quantity">1</span><span class="t706__product-plus"><img src="https://static.tildacdn.com/lib/linea/c47d1e0c-6880-dc39-ae34-521197f7fba7/arrows_circle_plus.svg" style="width:16px;height:16px;border:0;"></span>
</div>
<div class="t706__product-amount t-descr t-descr_sm">1 320&nbsp;р.</div>
<div class="t706__product-del"><img src="https://static.tildacdn.com/lib/linea/1bec3cd7-e9d1-2879-5880-19b597ef9f1a/arrows_circle_remove.svg" style="width:20px;height:20px;border:0;">
</div>
</div>
</div>


Соответственно надо скидку поставить после цены.

Последний раз редактировалось svileff, 07.12.2019 в 23:28.
Ответить с цитированием
  #6 (permalink)  
Старый 07.12.2019, 23:31
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

svileff,
так укажите полный селектор в строке 19
Ответить с цитированием
  #7 (permalink)  
Старый 07.12.2019, 23:34
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

svileff,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

  <script>
$(function() {
function numberWithCommas(str) {
    return (+str).toFixed(0).replace(/(\d+)(\.\d+)?/g, function (c, b, a) {
    return b.replace(/(\d)(?=(\d{3})+$)/g, "$1 ") + (a || "")
});
}

$(".t706__product-amount.t-descr.t-descr_sm").each(function(i, el) {
var num = (el.textContent.replace(/[^0-9.]/g, "") || 0) * 0.8;
var txt = numberWithCommas(num);
$(el).after(`<div class="t706__product-amount-sale">${txt}&nbsp;р.</div>`)
})
});
  </script>
</head>

<body>
<div class="t706__cartwin-products">
<div class="t706__product" data-cart-product-i="0">
<div class="t706__product-thumb">
<div class="t706__product-imgdiv" style="background-image:url(https://static.tildacdn.com/tild3632-3963-4232-b737-393335343436/903417_S.jpg);">
</div>
</div>
<div class="t706__product-title t-descr t-descr_sm">Elizavecca Milky Piggy Hell-Pore Longolongo Gronique Gold Mask Pack<div style="opacity:0.7;font-size:12px;font-weight:400;">903417</div>
</div>
<div class="t706__product-plusminus t-descr t-descr_sm">
<span class="t706__product-minus">
<img src="https://static.tildacdn.com/lib/linea/c8eecd27-9482-6c4f-7896-3eb09f6a1091/arrows_circle_minus.svg" style="width:16px;height:16px;border:0;"></span>
<span class="t706__product-quantity">3</span><span class="t706__product-plus"><img src="https://static.tildacdn.com/lib/linea/c47d1e0c-6880-dc39-ae34-521197f7fba7/arrows_circle_plus.svg" style="width:16px;height:16px;border:0;"></span>
</div>
<div class="t706__product-amount t-descr t-descr_sm">3 861&nbsp;р.</div>
<div class="t706__product-del"><img src="https://static.tildacdn.com/lib/linea/1bec3cd7-e9d1-2879-5880-19b597ef9f1a/arrows_circle_remove.svg" style="width:20px;height:20px;border:0;">
</div>
</div>

<div class="t706__product" data-cart-product-i="1">
<div class="t706__product-thumb">
<div class="t706__product-imgdiv" style="background-image:url(https://static.tildacdn.com/tild6130-6561-4633-a631-306663633061/904117_S.jpg);">
</div>
</div>
<div class="t706__product-title t-descr t-descr_sm">Elizavecca Milky Piggy Vitamin C 21% Ample Mask<div style="opacity:0.7;font-size:12px;font-weight:400;">904117</div>
</div>
<div class="t706__product-plusminus t-descr t-descr_sm"><span class="t706__product-minus"><img src="https://static.tildacdn.com/lib/linea/c8eecd27-9482-6c4f-7896-3eb09f6a1091/arrows_circle_minus.svg" style="width:16px;height:16px;border:0;"></span><span class="t706__product-quantity">1</span><span class="t706__product-plus"><img src="https://static.tildacdn.com/lib/linea/c47d1e0c-6880-dc39-ae34-521197f7fba7/arrows_circle_plus.svg" style="width:16px;height:16px;border:0;"></span>
</div>
<div class="t706__product-amount t-descr t-descr_sm">1 320&nbsp;р.</div>
<div class="t706__product-del"><img src="https://static.tildacdn.com/lib/linea/1bec3cd7-e9d1-2879-5880-19b597ef9f1a/arrows_circle_remove.svg" style="width:20px;height:20px;border:0;">
</div>
</div>
</div>
</body>
</html>
Ответить с цитированием
  #8 (permalink)  
Старый 07.12.2019, 23:42
Аспирант
Отправить личное сообщение для svileff Посмотреть профиль Найти все сообщения от svileff
 
Регистрация: 25.11.2019
Сообщений: 39

<script>
$( document ).ready(function createinput(){
function numberWithCommas(str) {
    return (+str).toFixed(3).replace(/(\d+)(\.\d+)?/g, function (c, b, a) {
    return b.replace(/(\d)(?=(\d{3})+$)/g, "$1 ") + a
});
}
$(".t706__product-amount.t-descr.t-descr_sm").each(function(i, el) {
var num = (el.textContent.replace(/[^0-9.]/g, "") || 0) * 0.8;
var txt = numberWithCommas(num);
$(el).after(`<div class="t706__product-amount-sale">${txt}&nbsp;р.</div>`)
})
});
//При открытии корзины запускаем функцию 
$( "[href = #order], .t706__carticon-wrapper").click(function() {createinput();});
</script>


Я запускаю через открытие корзины в окне. Может тут допустил ошибку...
Ответить с цитированием
  #9 (permalink)  
Старый 07.12.2019, 23:48
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

svileff,
<script>
$(function() {
    $("[href = '#order'], .t706__carticon-wrapper").click(function() {
        function numberWithCommas(str) {
            return (+str).toFixed(0).replace(/(\d+)(\.\d+)?/g, function(c, b, a) {
                return b.replace(/(\d)(?=(\d{3})+$)/g, "$1 ") + (a || "")
            })
        }
        $(".t706__product-amount.t-descr.t-descr_sm").each(function(i, el) {
            var num = (el.textContent.replace(/[^0-9.]/g, "") || 0) * .8;
            var txt = numberWithCommas(num);
            $(el).after('<div class="t706__product-amount-sale">' + txt + "&nbsp;\u0440.</div>")
        })
    })
});
  </script>
Ответить с цитированием
  #10 (permalink)  
Старый 07.12.2019, 23:54
Аспирант
Отправить личное сообщение для svileff Посмотреть профиль Найти все сообщения от svileff
 
Регистрация: 25.11.2019
Сообщений: 39

Странно сделал как написали вообще все пропало
https://lowo.store/all
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Взять данные из поля input(text) и добавить к содержимому div (text input + text div) ksultanov Элементы интерфейса 4 04.10.2016 19:46
Как получить значение с помощью JavaScript? griga999 Общие вопросы Javascript 2 22.02.2015 01:57
Как получить значение цвета из color picker razorg1991 jQuery 1 06.10.2014 09:06
Скрипт калькулятора (не могу добавить еще одно значение) Jee_Day Я не знаю javascript 2 22.05.2009 13:19
глюк форума Gvozd Сайт Javascript.ru 11 18.03.2009 14:37