IE 11中的Javascript运行方式不同,具体取决于我的文件所在位置

时间:2017-06-12 16:11:37

标签: javascript jquery internet-explorer-11

我有这个JavaScript,有一个有问题的行(评论):

function createCheckboxes(allClasses) {
  var form = document.getElementById('showForm');
  var p = document.createElement('P');
  p.setAttribute('className','oneLine'); //Problematic line
  var text = document.createTextNode("All");
  var chkbox = document.createElement('INPUT');
  chkbox.type = 'checkbox';
  chkbox.id = 'ALL_BOX';
  p.appendChild(chkbox);
  p.appendChild(text);
  form.appendChild(p);

  for (var key in allClasses) {
    p = document.createElement('P');
    p.setAttribute('className','oneLine'); //problematic line
    text = document.createTextNode(key.replace(/_/g," "));
    chkbox = document.createElement('INPUT');
    chkbox.type = 'checkbox';
    p.appendChild(chkbox);
    p.appendChild(text);
    form.appendChild(p);
    chkbox.className = 'section';
    chkbox.id = key;
    if (allClasses[key]) {
      chkbox.checked = 'true';
    }
}

当我从共享(非本地)驱动器执行此操作时,该类已成功设置。但当我从我的本地驱动器上运行时,它没有设置类(测试正在进行$('.oneLine').length()

我已经使用" magic"的

  $(p).addClass('oneLine');

而不是在JavaScript中设置类。但我很难理解世界上的javascript似乎根据文件的来源不同地处理相同的代码。理解这一点对我正在做的事情非常有帮助

1 个答案:

答案 0 :(得分:0)

我在寻找的答案可以在这里找到:IE11 and querySelector issue

事实证明,我需要标记来使JavaScript和我的CSS一致地工作