首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >试图将数值转换为css

试图将数值转换为css
EN

Stack Overflow用户
提问于 2018-11-19 16:01:16
回答 4查看 83关注 0票数 1

我试图迭代许多DIV,从所述DIV中提取一个数值,如果该值是==到JS中的特定值,则将特定的CSS类应用到它来自的DIV。

这是我到目前为止掌握的代码

代码语言:javascript
复制
const getRating = document.getElementsByClassName('my-ratings');
let getRatingValues = [];
for(var i = 0; i < getRating.length; i++) {
    getRatingValues += getRating[i].textContent;

    if (getRatingValues == 5) {
        getRating.classList.add('rating-5');
    }
    if (getRatingValues == 4) {
        getRating.classList.add('rating-4');
    }
    if (getRatingValues == 3) {
        getRating.classList.add('rating-3');
    }
    if (getRatingValues == 2) {
        getRating.classList.add('rating-2');
    }
    if (getRatingValues == 1) {
        getRating.classList.add('rating-1');
    }
}

我觉得我离得很近,但就是不能打破它的后背.

目前,脚本似乎将getRatingValues填充为字符串,因此如果我的值为5、3、1、2、2、4,那么getRatingValues将为531224。有人能给我指点方向吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-11-19 16:07:24

干法-按数字铸造:

代码语言:javascript
复制
let getRatingValues = 0;
document.querySelectorAll('.my-ratings').forEach(function(rate) { // for each my rating
  let val = rate.textContent; // get the rate
  getRatingValues += isNaN(val)?0:+val; // convert to number if is IS a number and add
  rate.classList.add('rating-'+val); // add the class - here or outside the loop?
})

我本以为getRating.classList.add('rating-'+val);应该在循环之外,因为现在如果所有5都设置好了,那么在一个div上就可以得到5个类。

对于IE你需要

代码语言:javascript
复制
var ratings = document.querySelectorAll('my-ratings');
for (var i=0;i<ratings.length;i++) {
  let val = ratings[i].innerText, rate = ratings[i];
票数 3
EN

Stack Overflow用户

发布于 2018-11-19 16:04:11

您需要将字符串转换为Number

变化

代码语言:javascript
复制
getRatingValues += getRating[i].textContent;

代码语言:javascript
复制
getRatingValues += Number(getRating[i].textContent);

而且,您的getRatingValues不应该初始化为[],而应该是

代码语言:javascript
复制
let getRatingValues = 0;
票数 1
EN

Stack Overflow用户

发布于 2018-11-19 16:05:39

试试parseInt

代码语言:javascript
复制
getRatingValues += parseInt(getRating[i].textContent);

参考资料:Objects/parseInt

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53378452

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档