Tahun baru, skill baru! 🚀. Masukkan kupon "skill2025" untuk diskon 30% di kelas apa saja

If else condition javascript

ada 3 buah table,saya ingin menjumlahkan semua nilai pada setiap masing-masing table di kolom akhir "total".setiap table memiliki 6 row. misal pengguna hanya memasukan nilai pada 2 row saya ingin kedua nilai itu terjumlah kan d bagian akhir row 6. tetapi sekarang keadaanya jika row yang tidak terisi berubah menjadi Nan dan menurut saya itu adalah alasan kenapa semua tidak bisa dijumlahkan pada "total".

bagaimana membuat kode jika row tidak terisi hasilnya "0" di if condition . untuk sementara saya membuat code seperti ini ;

if (table2_tanka_row_5){
    document.getElementById("table2_tanka5").value = table2_tanka_row_5;
  }
  else  {
    document.getElementById("table2_tanka5").value =  0  ;
  }

avatar Vetra
@Vetra

1 Kontribusi 0 Poin

Diperbarui 5 tahun yang lalu

Tanggapan

liat struktur DOM ny juga biar kami ga perlu membayangkan seperti apa kondisi dom saat ini

2 Jawaban:

pelajari cara menggunakan operator dengan operand yang berbeda tipe datanya. pastikan dulu buat dicek tipe data operandnya lewat console, kalo operandnya bertipe data string dan angka ya ngga bisa dijumlahkan dan hasilnya pasti NaN.

avatar ngadiono
@ngadiono

27 Kontribusi 14 Poin

Dipost 5 tahun yang lalu

Jawaban Terpilih

agan bisa pake parseInt(value || 0), contoh value dari table 3 adalah '', maka agan bisa langsung select elem dan valuenya kemudian masukkan di parseInt, parseInt(document.querySelector('#table3').value || 0).

kalo menurut saya, penggunaaan metode seperti ini jadi tidak efisien (tergantung seberapa banyak tabel dan keperluan agan juga sih), tapi kalo tabelnya banyak, dan agan mau set semua NaN value jadi 0, lebih baik berikan class yang sama agar bisa diseleksi secara massal. Contoh:

HTML: <input class="table-saya" id="table-1">

<input class="table-saya" id="table-2">

<input class="table-saya" id="table-3">

JS: let tableSaya = Array.from(document.querySelector('.table-saya'));

tablesaya.forEach(table => { parseInt(table.value || 0); });

mungkin gitu lebih efisien

avatar rubichandrap
@rubichandrap

25 Kontribusi 19 Poin

Dipost 5 tahun yang lalu

Login untuk ikut Jawaban