首页 > 解决方案 > 隐藏和更改功能不适用于探索

问题描述

我写了一些代码。适用于 chrome、safari 和 mozilla 的代码,但不适用于资源管理器的代码。

$('#vize-islem').hide();
$('#vize-bilgi').hide();
$('#vize-ulke').on('change', function(e) {
    let self = $(e.target);
    self.next('a').attr('href', self.find(':selected').data('url')).html('<i class="fas fa-external-link-alt"></i>' + self.find(':selected').text());
    $('#vize-islem').hide();
    $('#vize-bilgi').hide();
    $.get('vize/vizeislem/' + self.val(), function(result) {
        $('#vize-islem option').remove();
        $('#vize-islem').append('<option value="">Seçiniz</option>');
        if ( result.length > 0 ) {
            $('#vize-islem').show('slow');
            for (let key in result) {
                let kategori = result[key];
                console.log(kategori);
                $('#vize-islem').append(`<option value="${kategori.id}" data-url="${kategori.url}">${kategori.title}</option>`);
            }
        }
    }, 'json');
});

我想在资源管理器上隐藏和更改。

标签: javascriptjqueryhtml

解决方案


任何版本的 IE 都完全不支持模板文字。同样,该let关键字仅在 IE11 中有效。您需要改为使用var和字符串连接。

另请注意,您应该在逻辑中缓存重复的选择器以提高性能。尝试这个:

var $vize_islem = $('#vize-islem').hide();
var $vize_bilgi = $('#vize-bilgi').hide();

$('#vize-ulke').on('change', function(e) {
  let $self = $(e.target);
  $self.next('a').attr('href', $self.find(':selected').data('url')).html('<i class="fas fa-external-link-alt"></i>' + $self.find(':selected').text());
  $vize_islem.hide();
  $vize_bilgi.hide();

  $.get('vize/vizeislem/' + $self.val(), function(result) {
    $vize_islem.find('option').remove();
    $vize_islem.append('<option value="">Seçiniz</option>');

    if (result.length > 0) {
      $vize_islem.show('slow');
      for (let key in result) {
        let kategori = result[key];
        $vize_islem.append('<option value="' + kategori.id + '" data-url="' + kategori.url + '">' + kategori.title + '</option>');
      }
    }
  }, 'json');
});

推荐阅读