Hai teman-teman, jadi saya mengalami dilema dan tidak yakin mengapa kode saya tidak berfungsi. saya mengerti apa yang seharusnya dilakukan. tapi itu tidak melakukan apa yang seharusnya. Tolong bisakah seseorang melihat apakah mereka dapat men-debug kode saya. Terima kasih banyak. seharusnya mengatur atribut berdasarkan opsi mana yang dipilih

HTML

<select id="track_type_selected">
  <option value="0" >51 Track 3m</option>
  <option value="1" >64 Track 3m</option>
  <option value="2" >103 Track 3m</option>
</select>

Javascript

var e = document.getElementById("track_type_selected");
  var selectedIndex = e.options[e.selectedIndex].value;
  if(selectedIndex==0){
      $("#required_tracks_id").setAttribute("sku","TRACK3");
  }
  if(selectedIndex==1){
      $("#required_tracks_id").setAttribute("sku","TRK30");
  }
  if(selectedIndex==2){
      $("#required_tracks_id").setAttribute("sku","TRACK-1033");
  }
-1
13garth 20 Agustus 2017, 19:10

2 jawaban

Jawaban Terbaik

Di JQuery Anda dapat menggunakan fungsi attr untuk mendapatkan atau mengatur Atribut elemen apa pun untuk mendapatkan atribut elemen seperti ini.

$("#required_tracks_id").attr("sku");

Dan untuk mengatur atribut elemen

$("#required_tracks_id").attr("sku", "Value");

Dalam kasus Anda gunakan kode seperti di bawah ini

var e = document.getElementById("track_type_selected");
var selectedIndex = e.options[e.selectedIndex].value;
if(selectedIndex==0){
    $("#required_tracks_id").attr("sku","TRACK3");
}
if(selectedIndex==1){
    $("#required_tracks_id").attr("sku","TRK30");
}
if(selectedIndex==2){
    $("#required_tracks_id").attr("sku","TRACK-1033");
}
1
Fatehi_Alqadasi 20 Agustus 2017, 16:34

Alasan itu tidak berhasil adalah karena Anda mencampur vanilla JS dengan jQuery. Anda memperoleh #required_tracks_id melalui pemilih jQuery, tetapi setAttribute() adalah fungsi JS. Jadi, Anda dapat melakukan salah satu dari ini:

document.querySelector("#required_tracks_id").setAttribute("sku", "xxx");

Atau

$("#required_tracks_id").attr("sku", "xxx");
1
ishegg 20 Agustus 2017, 16:26