javascript - 通过JS分析数组来改变css类
问题描述
首先在这里尝试。我是 Web 开发的新手,大部分时间都忙于基于 CSS、html 的前端工作,这是游戏中典型的标记/样式部分。我只是设计了一些首字下沉,这将根据跨度中的内容改变它们的行为。就“12”比“1”甚至“#12”占用更多空间而言,我有多个改变样式的css类。目标是编写一些 JS 来分析我在跨度中放置了多少和哪些字符,因此将一个类附加到它。容易吧?
好吧,我对 JS 的了解不多,主要是与基本的东西相处,所以需要一些建议来更改或调整代码以变得更好。
这就是我到目前为止的情况:
function capsChange(){
var spanLength = document.getElementsByClassName('.dropcap.circle').value.length
var spanContent = document.getElementsByClassName ('.dropcap.cirle')
if (spanLength = 2 && spanContent.includes('#')) {
spanContent.classList.add('oneplusdot');
}
else if (spanLength = 1) {
spanContent.classList.add('onealone');
}
else if (spanLength = 3 && spanContent.includes('.') ) {
spanContent.classList.add('twoplusdot');
}
else if(spanLength = 3 && spanContent.includes('#') ) {
spanContent.classList.add('twoplusone');
}
else if(spanLength = 2 && spanContent.includes("#" || '.') == false ) {
spanContent.classList.add('twoalone');
}
}
提前致谢,请原谅我(很可能)写得不好。
解决方案
尽管您没有发布任何特定于 JS 的问题。建议检查短路以获得更好的代码可读性并避免嵌套条件语句。
capsChange() {
var spanLength = document.getElementsByClassName('.dropcap.circle').value.length
var spanContent = document.getElementsByClassName('.dropcap.cirle')
switch (spanLength) {
case 1:
spanContent.classList.add('onealone');
break;
case 2:
if (spanContent.includes('#')) {
spanContent.classList.add('oneplusdot');
break;
}
if (!spanContent.includes('.')) {
spanContent.classList.add('twoalone');
}
break;
case 3:
if (spanContent.includes('#')) {
spanContent.classList.add('twoplusone');
break;
}
if (spanContent.includes('.')) {
spanContent.classList.add('twoplusdot');
}
break;
}
推荐阅读
- plotly-dash - 仪表板应用程序中是否可以有外部(非仪表板)按钮回调?
- delphi - 我应该使用临界区还是同步/队列来修改类数据成员?
- node.js - 为什么我在使用 puppeteer 设置 userAgent 时没有得到移动调整响应?
- ruby-on-rails - 在 mac mojave 上安装旧版本的 therubyracer(v0.9.10) gem
- scala - 如何安全地将凭据传递给激活器命令
- json - 如何通过 get_url 模块使用来自 json 格式答案的 url?
- user-interface - 光标在屏幕上的移动是图形转换的结果吗?
- kubernetes - Kubernetes 示例说明中 Hostpath 卷的快照
- renderscript - Androidx RenderScript 不运行 android api<19
- javascript - 未捕获(承诺)错误:无法使用 javascript 加载“places_impl”谷歌地图 API