亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

具有多種測量選項的體積計算器

具有多種測量選項的體積計算器

FFIVE 2023-01-06 16:05:50
我正在嘗試創建一個體積計算器,用戶可以在其中輸入寬度長度和深度,以及 5 種不同單位的選擇。如果他們愿意,他們可以將所有三個都放在不同的單位,但我需要輸出以米 ^3 為單位。所以我認為最簡單的方法是先將所有測量值轉換為米,然后將它們全部相乘以獲得體積,但是作為 javascript 和編碼的新手,我發現這比我想象的要大。下面是我的 HTML 和 JS 代碼我盡力展示我的想法(通過使用注釋)以及我在 js 代碼的每個階段試圖實現的目標。下面的代碼沒有輸出任何東西,我不確定我哪里出錯了,或者即使其中任何一個都是正確的!任何幫助表示贊賞但是我會非常感謝評論解釋我哪里出錯了提示我下次應該關注什么以及推薦的任何閱讀等因為我正在努力改進而不是僅僅獲得解決方案并且沒有獲得額外的知識:)再次感謝你!<table class="calculator">  <div class="calculatorheading">    <h1> Use our simple calculator below to calculate the amount you need!</h1>  </div>  <tbody>    <tr>      <td>Width</td>      <td><input type="text" id="width" /></td>      <td>        <select id="width-type">          <option value="meters">Metres</option>          <option value="centimeter">Centimeter</option>          <option value="inches">Inches</option>          <option value="feet">Feet</option>          <option value="yards">Yards</option>        </select>      </td>    </tr>    <tr>      <td>Length</td>      <td><input type="text" id="length" /></td>      <td>        <select id="length-type">          <option value="meters">Metres</option>          <option value="centimeter">Centimeter</option>          <option value="inches">Inches</option>          <option value="feet">Feet</option>          <option value="yards">Yards</option>        </select>      </td>    </tr>    <tr>      <td>Depth</td>      <td><input type="text" id="depth" /></td>      <td>        <select id="depth-type">          <option value="meters">Metres</option>          <option value="centimeter">Centimeter</option>          <option value="inches">Inches</option>          <option value="feet">Feet</option>          <option value="yards">Yards</option>        </select>      </td>    </tr>    <tr>      <td colspan="3">        <button onclick="calculateVolume()">Calculate</button>      </td>    </tr>    <tr>      <p id="result"></p>    </tr>  </tbody></table>
查看完整描述

1 回答

?
慕婉清6462132

TA貢獻1804條經驗 獲得超2個贊

  • <div>不是有效的直系<table>后代

  • 使用您的單位到儀表值乘數創建一個對象(考慮可重用性)。toMeters在下面的例子中。

  • 請記住,輸入值(即使type="number"始終是一個 String - 因此在 JavaScript 中,您必須將該 String 解析為 Float 使用parseFloat(str)

  • 用于.toFixed()將精度舍入到定義的小數點精度

// Just some nifty helpers to get DOM element/s

const ELS = (sel, EL) => (EL || document).querySelectorAll(sel);

const EL = (sel, EL) => (EL || document).querySelector(sel);


// Cache your elements

const EL_result = EL("#result");

const EL_w  = EL("#width");

const EL_l  = EL("#length");

const EL_d  = EL("#depth");

const EL_uw = EL("#unit-width");

const EL_ul = EL("#unit-length");

const EL_ud = EL("#unit-depth");


const toMeters = (str = "1", unit = "m") => str.trim() * {

  m : 1,

  cm: 100,

  in: 39.37,

  ft: 3.28084,

  yd: 1.09361

}[unit];


function calcVol() {

  const w = toMeters(EL_w.value, EL_uw.value);

  const l = toMeters(EL_l.value, EL_ul.value);

  const d = toMeters(EL_d.value, EL_ud.value);

  const tot = w * l * d;

  EL_result.textContent = Number(tot.toFixed(5));

}


ELS(".calc").forEach(el => el.addEventListener("input", calcVol));

// init!

calcVol();

span.label {display: inline-block; min-width: 80px; font:14px sans-serif;}

<span class="label">Width</span>

<input id="width" class="calc" type="number" value="1" min="0" step="0.1">

<select id="unit-width" class="calc">

  <option value="m">Metres</option>

  <option value="cm">Centimeter</option>

  <option value="in">Inches</option>

  <option value="ft">Feet</option>

  <option value="yd">Yards</option>

</select>

<br>

<span class="label">Length</span>

<input id="length" class="calc" type="number" value="1" min="0" step="0.1">

<select id="unit-length" class="calc">

  <option value="m">Metres</option>

  <option value="cm">Centimeter</option>

  <option value="in">Inches</option>

  <option value="ft">Feet</option>

  <option value="yd">Yards</option>

</select>

<br>

<span class="label">Depth</span>

<input id="depth" class="calc" type="number" value="1" min="0" step="0.1">

<select id="unit-depth" class="calc">

  <option value="m">Metres</option>

  <option value="cm">Centimeter</option>

  <option value="in">Inches</option>

  <option value="ft">Feet</option>

  <option value="yd">Yards</option>

</select>

<br>

<span class="label">VOLUME:</span>

<span id="result">0</span> m<sup>3</sup>


查看完整回答
反對 回復 2023-01-06
  • 1 回答
  • 0 關注
  • 129 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號