Получение строковой цены в числовом формате - PullRequest
0 голосов
/ 10 апреля 2019

Я использую opencart 3.x и пытаюсь получить цену в число, чтобы я мог делать с ней расчеты.Я продолжаю получать NaN или ошибку скриптинга:

<h2><span id="getPrice">{{ price }}</span> /Carton</h2>    

Здесь я устанавливаю id как getPrice, чтобы я мог получить цену, как только страница загрузится, она составит 169,99 $.Этот номер не может быть использован как номер ... это проблема, с которой я столкнулся.Я знаю, что {{price}} - это PHp, я верю, но я думаю, что поскольку число загружается до моего сценария, мне не о чем беспокоиться?Когда страница загружается, на ней написано $ 116,99 / коробка, я разложил {{price}}, чтобы я мог превратить это в число.

Вот мой javascript.я попытался parsefloat, который не работает, и toFixed (2), который alawys получает ошибку «toFixed is not function»

const getPrice = document.querySelector("[id^='getPrice']").innerHTML;
const getSquareFeetPerBox = document.querySelector("[id^='input-option']").value;
const costPerSqft = getPrice / getSquareFeetPerBox;
const fixxed = parseFloat(getPrice);
document.getElementById("pricePerSqft").innerHTML = ` ( ${costPerSqft}  /per sqft )`;
console.log(fixxed);    

Пожалуйста, помогите, я был на этом в течение нескольких часов и просто нужно сделать простуюРасчет с ценой.Я использую console.log только для того, чтобы посмотреть, записано ли число, но всегда ошибка $ 116,99 или ошибка сценария ... а не просто 116,99

Заранее благодарю

1 Ответ

1 голос
/ 10 апреля 2019

Предполагая следующий HTML:

<h2><span id="getPrice">$169.99</span> /Carton</h2>  
<input type="text" id='input-option' value="10"></input>
<p id="pricePerSqft"> </p>

Со следующим JS:

const getPrice = document.querySelector("[id^='getPrice']").innerHTML;
const getSquareFeetPerBox = document.querySelector("[id^='input-option']").value;
const fixed = parseFloat(getPrice.slice(1, getPrice.length));
const costPerSqft = fixed / getSquareFeetPerBox;
console.log(costPerSqft)
document.getElementById("pricePerSqft").innerHTML = ` ( ${costPerSqft}  / per sqft );

Вы должны быть в состоянии разобрать номер. Я использовал String # slice, чтобы получить номер, но в комментариях к исходному сообщению, безусловно, есть и другие способы получить номер. Использование регулярного выражения, подобного предложенному Марком, звучит как солидная опция:)

Ссылка CodePen здесь, если вам это нужно: https://codepen.io/travishaby/pen/jRbqMr

...