【问题标题】:jQuery - if select option value equal with a data add classjQuery - 如果选择选项值等于数据添加类
【发布时间】:2014-08-09 11:05:30
【问题描述】:

我有一个带有 3 选项的选择框和一个带有 3 的 div,它们具有数据属性。 现在我希望每个已选择 = 选择的选项以及值(数字)与数据相等,然后将类添加到

例如:

如果选择了选项/并且值 = 带有数据:

<option value="2" selected="selected">

做(添加类):

 <a class="menuitem active" data="2"></a>

JSFiddle

$("#myselect option").each(function(){
    var num = $('.menucontainer').children('a.menuitem').attr('data');
        if($(this).is(':selected').val()==num){ 
            $('.menucontainer').children('a.menuitem').addClass('active');
            }
        });
    });

【问题讨论】:

标签: javascript jquery html drop-down-menu


【解决方案1】:

你犯了很多小错误。喜欢

1.) 小提琴中不包含 Jquery。

2.) .is 返回一个布尔值,而您正在执行$(this).is(':selected').val()。你应该做$(this).is(':selected') &amp;&amp; $(this).val()

3.) 最后多了});

而且我认为以其他方式迭代会更好。如下所示

$('.menucontainer .menuitem').each(function(){
    if($(this).attr('data')==$('#myselect :selected').val())
        $(this).addClass('active');
})

DEMO

【讨论】:

  • 感谢您的回答,错误抱歉,,。但是如果你再次看到你的演示,你会看到所有都有活动的类,我只想要一个与选项相等的选项并且选择了该选项。在这个演示中,我们只选择了一个选项。
  • 再次感谢,但我对此仍有一点小问题。这个jsfiddle.net/d3g8qsph/29 怎么样?有两个或更多选定的项目?
  • @user3815083 那么你必须检查它是否存在于任何值中。见演示jsfiddle.net/mkdskd/d3g8qsph/32
  • 感谢您的帮助,完美解答
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-01
  • 1970-01-01
  • 2020-08-12
  • 1970-01-01
  • 1970-01-01
  • 2018-01-07
相关资源
最近更新 更多