2015-07-28 65 views
0

我在我的网站中有一个语言选择器,我想在用户选择语言时用标志更改主类别的图标。如何更改jQuery选择菜单中的图标

我试过这段代码,怎么了?有什么建议么?

$('div.country.cs-skin-elastic').on('click', function() { 
    var myflag = $(this).data('flag'); 
    $('.countries').addClass(myflag); 
}) 
.cs-skin-elastic .cs-options li.flag-ita span { 
    background-image: url(imgs/flag-ita.jpg); 
    background-size: 20px; 
} 
<div class="contentp countries"> </div>          
    <form id="selections"> 
     <select class="country cs-skin-elastic" onchange="setLanguage()" name="countrySelect"> 
      <option value="null"></option> 
      <option value="1" data-class="carrello">United States</option> 
      <option value="13" data-flag="flag-ita">japan</option> 
      <option value="10" data-flag="flag-ita">Germany</option> 
     </select> 
    </form> 
+0

第一:CSS规则应用到一个不存在的元素(李里面的跨度)。 第二:处理程序应用于div容器,而不是select,因此它不会检索正确的语言选择。 – ANVerona

+0

你有拼写错误。你定义了myflag变量,并在addClss中使用了myFlag(大写字母F)。 。检查我的答案?希望你声明'setLanguage()'函数? 。从属性 –

回答

0

试试这个:

$('div.country.cs-skin-elastic').on('change', function() { 
    var myflag = $(this).data('flag'); 
    $('.countries').addClass(myFlag); 
}) 
+0

thx删除'setLanguage()'但不工作 –

+0

检查此[DEMO](https://jsfiddle.net/6g697904/3/),选择日本国旗。你也需要汉德尔去除其他课程。 –

+0

好,你的代码在jsfiddle上工作,但不在我的网站上:(www.speedythemes.net,在右侧导航栏中我只有一个图标,怎么了? –

相关问题