jquery - 使用 jQuery 动态更新 CSS 属性

标签 jquery css loops

我有以下 jQuery 代码,但它没有更改在 CSS 中设置为红色的负数的颜色,但在控制台中,预期的颜色已得到纠正。

这是一个表格,其中的行是通过 AJAX 动态创建的。

在这里,我的 jQuery 代码使用 AJAX 处理从数据库检索的数据。

$.each(data, function (q, z) {
    var rem = z.remaining;
    console.log('rem ' + rem);
    $("#tbody").append('<tr><td><input type="checkbox" name="tick" id="tick"></td><td class="id">' + z.id + '</td><td class="title">' + z.title + '</td><td class="name">' + z.name + '</td><td class="surname">' + z.surname + '<span class="mystyle"> (' + rem + ')</span>' + '</td><td class="sessions"><select name="sessions" id="sessions" class="sesVal"><option value="0">0</option><option value="1">1</option><option value="2">2</option><option value="4">4</option></select></td><td class="amount"></td></tr>');
    if(rem >= 1) {
        $(".mystyle").css('color','green');
        console.log('green');
    }
    if(rem < 0) {
        $(".mystyle").css('color','red');
        console.log('red');
    }
});

下面是页面和浏览器控制台的截图;

enter image description here

最佳答案

要获得预期结果,请使用 .eq() 的以下选项将样式应用于该特定行,查看此 eq(index) 链接以获取更多详细信息 - https://api.jquery.com/eq-selector/

$(".mystyle:eq("+q+")")

codepen - https://codepen.io/nagasai/pen/pOMBXq

var data = [{
  "remaining":-1,
  "id":1,
  "title":"test",
  "surname":"zzz",
  "name":"yyy"
},{
  "remaining":10,
  "id":2,
  "title":"test2",
  "surname":"zzz2",
  "name":"yyy2"
}]

$.each(data, function (q, z) {
                    var rem = z.remaining;
                    console.log('rem ' + rem, q);
                     $("#tbody").append('<tr><td><input type="checkbox" name="tick" id="tick"></td><td class="id">' + z.id + '</td><td class="title">' + z.title + '</td><td class="name">' + z.name + '</td><td class="surname">' + z.surname + '<span class="mystyle"> (' + rem + ')</span>' + '</td><td class="sessions"><select name="sessions" id="sessions" class="sesVal"><option value="0">0</option><option value="1">1</option><option value="2">2</option><option value="4">4</option></select></td><td class="amount"></td></tr>');
                    if(rem >= 1) {
                        $(".mystyle:eq("+q+")").css('color','green');
                        console.log('green');
                    }
                     if(rem < 0) {
                        $(".mystyle:eq("+q+")").css('color','red');
                        console.log('red');
                     }
                    }); 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
  <tbody id="tbody"></tbody>
</table>

关于jquery - 使用 jQuery 动态更新 CSS 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52523763/

相关文章:

单击 div 但不是其嵌套 div 时的 jquery 函数

python - For 循环应该向字典添加条目但只保留一个

php - 为什么ajax在php中复制整个页面

javascript - 检查 Google Chrome 中的 jquery 滚动是否位于底部

css - Less 中基于变量的 Mixin 守卫

css - 如何重置这些 CSS 样式?

javascript - ng-template 不在 jsFiddle 中显示 View

javascript - 在注释标签中包含 javascript 代码 "&lt;!--//-->"

php - 满足条件时如何在 PHP 中中断 for 循环?

python - 如果列表包含字符串,则打印列表中包含它的所有索引/元素