jQuery addClass / removeClass仅在Firefox中有效

时间:2019-02-13 16:35:38

标签: jquery html css

有人可以告诉我为什么它在Firefox中可以使用,但在Safari或Chrome中不能使用吗?

newClass变量只是从选择框值中获取输入,然后我用它来创建选择器,并在所选元素上使用addClass / removeClass

我尝试了不同的语法,例如将.添加到变量中,而不是将其添加到选择器中,但是结果是相同的。

$(document).ready(function() {
  $('.first_place_selection').click(function() {
    var newClass = $('#first_place').find(':selected').text();

    $("." + newClass).removeClass('second-active');
    $("." + newClass).removeClass('third-active');
    $("." + newClass).addClass('first-active');
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<select class="custom-select d-block w-100" id="first_place" name="first_place" autocomplete="off" required>
  <option value="">Select...</option>
  <option class="first_place_selection" value="team1">team1</option>
  <option class="first_place_selection" value="team2">team2</option>
  <option class="first_place_selection" value="team3">team3</option>
  <option class="first_place_selection" value="team4">team4</option>
</select>

<div class="entry-number team1">1</div>
<div class="entry-number team2">2</div>
<div class="entry-number team3">3</div>
<div class="entry-number team4">4</div>

1 个答案:

答案 0 :(得分:1)

在使用选择下拉菜单时,代替单击尝试更改事件。

$('#first_place').change(function(){
    var selectedValue = $(this).val();
        $(this).removeClass('second-active third-active').addClass('first-active');
})