javascript - 为什么我会因为这个 Javascript 函数而失去利润

标签 javascript html bootstrap-4

我正在使用 Bootstrap4,我有一个多选和一个单独的 div,显示当前选择的一系列徽章。 (因为如果使用移动设备,选择不会显示当前选择的内容,它只显示选择了多少个项目)

  <div class="form-control mb-2" id="fieldsCompleteness" name="fieldsCompleteness">                                
  <span class="badge badge-secondary">
      Acoustic
  </span>
  <span class="badge badge-secondary">
      Album
  </span>
  <span class="badge badge-secondary">
      Sort Album Artist
  </span>
  </div>

当用户更改选择时,必须更新徽章,这是通过调用此 Javascript 函数来完成的。

function getSelectValues(select, readonlylist)
{                             
      var result = '';
    var options = select && select.options;
    var opt;

    for (var i=0, iLen=options.length; i<iLen; i++)
    {
        opt = options[i];
        if (opt.selected)
        {
            result+='<span class="badge badge-secondary">' + opt.text + '</span>';
        }
    }
    readonlylist.innerHTML =result;
    return result;
}

这有效,只是每个徽章之间的边距消失了。我不明白为什么,因为看起来我只是用完全相同的内容替换现有的 Html(一系列跨度)。由于我误解了 innerHTML 的工作原理,它对外部 div 上定义的类有影响吗?

最佳答案

渲染 html 中的空格(徽章文本之前)(并减少为单个空格) - 您可以通过添加空格在 JS 中实现相同的效果,即更改

'<span class="badge badge-secondary">' + opt.text + '</span>'

'<span class="badge badge-secondary"> ' + opt.text + '</span>'

关于javascript - 为什么我会因为这个 Javascript 函数而失去利润,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50650789/

相关文章:

html - Bootstrap Columns inside Row 不同效果图

html - 如何在 Bootstrap 中将导航项居中?

html - 网站视口(viewport)在 Bootstrap 4 上的 Safari 浏览器上仍然可以缩放和捏合

javascript - 图片上的传单自定义坐标

javascript - 如何创建一个小书签以在单独的窗口中显示数据层中的对象

javascript - 如何在 PHP 中执行正确的无符号右移?

javascript - 在 d3 map 投影周围创建一个弯曲的边界

javascript - 用 X 替换 html 复选框

html - 用户代理样式表问题

html - Bootstrap HTML - 中型设备注册为大