setAttribute等于我的条件

时间:2017-08-20 16:10:42

标签: javascript jquery

大家好,所以我遇到了进退两难的局面,并且不太确定为什么我的代码无效。我明白它应该做什么。但它没有做到它应该做的事情。请有人看看他们是否可以调试我的代码。太感谢了。 它应该根据选择的选项设置属性

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");
  }

2 个答案:

答案 0 :(得分:1)

在JQuery中,您可以使用attr函数来获取或设置任何元素属性以获取这样的元素属性。

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

并设置元素属性

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

在您的情况下使用代码如下所示

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 :(得分:1)

它不起作用的原因是因为你将vanilla JS与jQuery混合在一起。您通过jQuery选择器获得了#required_tracks_id,但setAttribute()是一个JS函数。所以,你可以做以下任何一种:

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

或者

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