根据下拉菜单更改图像src

时间:2017-08-07 01:02:25

标签: javascript java jquery html css

我正在使用Shopify平台,并尝试将标志图像添加到我的货币转换器

以下是我的货币换算代码



<select id="currencies" class="currencies" name="currencies" data-default-shop-currency="{{ shop.currency }}">
  {% capture codes %},USD,EUR,GBP,CAD,ARS,AUD,ILS,BBD,BDT,BSD,BHD,BRL,BOB,BND,BGN,MMK,KYD,CLP,CNY,COP,CRC,HRK,CZK,DKK,DOP,XCD,EGP,XPF,FJD,GHS,GTQ,GYD,GEL,HKD,HUF,ISK,INR,IDR,NIS,JMD,JPY,JOD,KZT,KES,KWD,LVL,LTL,MXN,MYR,MUR,MDL,MAD,MNT,MZN,ANG,NZD,NGN,NOK,OMR,PKR,PYG,PEN,PHP,PLN,QAR,RON,RUB,SAR,RSD,SCR,SGD,SYP,ZAR,KRW,LKR,SEK,CHF,TWD,THB,TZS,TTD,TRY,UAH,AED,UYU,VEB,VND,ZMK,{% endcapture %}
  {% assign supported_codes = settings.supported_currencies | split: ' ' %}
  <option value="{{ shop.currency }}" selected="selected">{{ shop.currency }}</option>
  {% for code in supported_codes %}
    {% if code != shop.currency and codes contains code %}
    <option value="{{ code }}">{{ code }}</option>
    {% endif %}
  {% endfor %}
</select>
&#13;
&#13;
&#13;

这是我做的Java:

&#13;
&#13;
var flagsArray = [
  "https://cdn.shopify.com/s/files/1/2078/5043/t/59/assets/usa.png?18222330839739856022", // USD,
  "https://cdn.shopify.com/s/files/1/2078/5043/t/59/assets/GBP.png?10208443253961150348", // GBP,
  "https://cdn.shopify.com/s/files/1/2078/5043/t/59/assets/ILS.png?16971579683524372576"  // ILS ...
];

$('#currencies').change(function(){
  $('#flags')[0].src = flagsArray[this.value];
});
&#13;
&#13;
&#13;

它应该在值改变时改变图片。

(价值MOST为美元,英镑等......不能成为数字,因为这是货币兑换商贬值的方式)

这是我改变货币时应该改变的img:

&#13;
&#13;
<img id="flags" src='//cdn.shopify.com/s/files/1/2078/5043/t/59/assets/usa.png?18222330839739856022'>
&#13;
&#13;
&#13;

我不知道我做错了什么,如果有人能告诉我那会很棒:) 谢谢:))

2 个答案:

答案 0 :(得分:0)

您正在使用数组的值而不是数组的索引。您可以使用.indexOf().findIndex()来获取与select元素的当前值匹配的数组的索引,您可以在其中设置value的{​​{1}}属性1}}元素

<option>

指向JavaScript处<option value="{{ code }}">{{ code }}</option> 元素处设置的字符串,而不是与应引用的flagsArray索引对应的索引

flagsArray

flagsArray[flags.indexOf(this.value)];

或者,您可以设置与应匹配的数组索引对应的flagsArray[flags.findIndex(function(text){return text === this.value})]; 元素的value

<option>

能否使用当前代码

答案 1 :(得分:0)

对不起伙计们,它不起作用。 我尝试了另一招,

onchange="$('#flags').attr('src', this.options[this.selectedIndex].value);"

但现在,图像src已更改为VALUE的NAME enter image description here

我如何使这个命令从:

获取src

var flagsArray = [
  "https://cdn.shopify.com/s/files/1/2078/5043/t/59/assets/usa.png?18222330839739856022", // USD,
  "https://cdn.shopify.com/s/files/1/2078/5043/t/59/assets/GBP.png?10208443253961150348", // GBP,
  "https://cdn.shopify.com/s/files/1/2078/5043/t/59/assets/ILS.png?16971579683524372576"  // ILS ...
];

感谢