Вывести значение в несколько констант - PullRequest
0 голосов
/ 29 августа 2018

Связанный скрипт:

window.onload = function calcPreco() {
for(const cloud of Array.from(document.getElementsByName("cloud"))) {
    fetch("_config/buscar_valor.php?id="+cloud.getAttribute("cloudid")+"&periodicidade=monthly")
     .then(res => res.text())
     .then(preco => {
        preco -= cloud.getAttribute("desconto");
        const valor = cloud.querySelector(".mostrar_valor").innerText = preco.toFixed(2).replace('.', ',');
     })
    }
}

Мне нужно напечатать на другой <span> с другим классом, но перед выполнением вычитания.

Я пробовал что-то подобное, но это не сработало:

.then(preco => {
        const valor = cloud.querySelector(".NEW_CLASS").innerText = preco.toFixed(2).replace('.', ',');
        preco -= cloud.getAttribute("desconto");
        const valor = cloud.querySelector(".mostrar_valor").innerText = preco.toFixed(2).replace('.', ',');
     })

То есть сначала необходимо распечатать исходное значение, а затем значение с выполненным вычитанием.

Как использовать два константных оператора в этом случае?

1 Ответ

0 голосов
/ 29 августа 2018

Когда используете var или const, думайте об этом как о назначении областей памяти Когда вы назначите 2 ячейки памяти в одной области, он не будет знать, что делать. Поэтому используйте разные имена или удалите var / const из объявления переменной. Хорошей практикой является определение, а затем использование:

var someVariable;
if(condition){
   someVariable = 'some answer';
}
else
{
   someVariable = "some other answer';
}

Или объединить:

var someVariable;
someVariable = "some"; // mostly this and the line above will be one line.
someVariable += " answer";

Также, если вы делаете:

valor = "some html";
valor = "some other html"; // This will overwrite the first answer.

Также хорошо читать:

https://airbrake.io/blog/javascript-error-handling/redeclaration-formal-parameter-x

Вероятно, то, что вы ищете:

var valor = cloud.querySelector(".NEW_CLASS").innerText = preco.toFixed(2).replace('.', ',');
preco -= cloud.getAttribute("desconto");
valor += cloud.querySelector(".mostrar_valor").innerText = preco.toFixed(2).replace('.', ',');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...