我的选择器值有什么问题?

时间:2018-02-10 17:29:45

标签: javascript jquery shopify selector

我目前正在Shopify为我的客户开发一家商店。他希望我添加一个功能,通过该功能跟踪用户的IP地址,他可以查看自己特定国家/地区的货币。我使用以下代码: 我想将下拉列表中的选定值更改为“AUD” 我在这部分只得到一些语法错误:

jQuery("#select_selector option:selected").removeAttr("selected");

jQuery("#select_selector option:[value='"AUD"']").attr('selected', 'selected')

它说错误的语法或争论遗失。

3 个答案:

答案 0 :(得分:2)

您需要连接字符串和变量。您可以使用+运算符执行此操作。在option

之后,您也不需要冒号
jQuery("#select_selector option[selected]").removeAttr("selected");

jQuery("#select_selector option[value='" + AUD + "']").attr('selected', 'selected')

如果AUD不是变量,那么您应该完全删除引号。

jQuery("#select_selector option[value=AUD]").attr('selected', 'selected')
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="select_selector">
      <option value="ABC">ABC</option>
      <option value="123">123</option>
      <option value="AUD">AUD</option>
      <option value="EFG">EFG</option>
</select>

答案 1 :(得分:0)

@Get Off My Lawn的代码工作正常。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<select id="select_selector">
      <option value="ABC">ABC</option>
      <option value="123">123</option>
      <option value="AUD">AUD</option>
      <option value="EFG">EFG</option>
</select>

<input type="button" value="click me" id="clickme">


<script>
 jQuery("#clickme").click(function(){
    jQuery("#select_selector option[selected]").removeAttr("selected");
    jQuery("#select_selector option[value=AUD]").attr('selected', 'selected');

});
</script>

或尝试此JSFiddle

将澳元/美元或任何货币作为变量将是好事。

答案 2 :(得分:0)

option:[value='"AUD"']应为option[value=AUD]。不需要冒号。

但实际上你可以使用

jQuery("#select_selector").val('AUD');

如果您使用https://help.shopify.com/themes/customization/currencies/show-multiple-currencies的样本(我推荐) 那就是

jQuery("#currencies").val('AUD');

如果您是为首次访问者自动选择货币,则不应尝试将货币选择存储在本地存储中。这不仅可以节省您的geoip查找,还可以让客户将该值覆盖到他们选择的货币。 Shopify的示例在其代码中使用了一个名为cookieCurrency的cookie,因此您的GeoIP查找可以先测试它,如果没有设置,则只进行查找。