我正试图用纯Javascript重新创建我看到的服装测量图。我很难弄清楚如何获取innerhtml中的数字值并将其乘/除*2.54。此外,我想添加";cm";或";在";在数字的末尾指示测量系统。
https://jsfiddle.net/kud8sj7w/5/
<div id="xs-sizes">
<li class="measurement" style="left: 15%; top: 33%;">
63.5
</li><li class="measurement" style="left: 48%; top: 16%;">
43.5
</li><li class="measurement" style="left: 48%; top: 79%;">
50.5
</li><li class="measurement" style="left: 48%; top: 50%;">
43
</li><li class="measurement" style="left: 83%; top: 62%;">
64.5
</li>
function convert() {
var measurements = document.getElementsByClassName("measurement");
for(var i = 0; i < measurements.length; i++){
measurements[i].innerHTML = valNum * 2.54;
}
}
您需要存储当前状态才能知道是否需要转换。在您的情况下,最初为"CM">
let cur_measurement = 'CM';
function convert() {
let measurements = document.getElementsByClassName("measurement");
let CM = document.querySelector('input[value="CM"]');
let IN = document.querySelector('input[value="IN"]');
let ratio = 0;
if(CM.checked && cur_measurement != 'CM'){
ratio = 2.54;
cur_measurement = 'CM';
} else if (IN.checked && cur_measurement != 'IN' ){
ratio = 1/2.54;
cur_measurement = 'IN';
}
for (var i = 0; i < measurements.length; i++) {
let cur_val = parseFloat(measurements[i].innerText);
measurements[i].innerText = Math.round(cur_val * ratio * 10) / 10;
}
}
因此,对于measurements[i].innerHTML = valNum * 2.54;
,valNum
是未定义的。看看convert()
,没有参数。当它被调用时,它乘以valNum
,即undefined
。
想想valNum
应该等于什么,或者2.54
应该在什么上运行。我希望这会有所帮助。同样要字符串cm/unit
,您可以直接连接,但首先获得结果。