首页 > 解决方案 > 如何 .addClass 以复制或动态创建相同的类

问题描述

我想突出显示由数据库生成的具有相同类的表行(所以我不知道究竟会出现什么类)

这是 HTML 标记的样子

在此处输入图像描述

到目前为止,我试过这个: -

<script type="text/javascript">
$(document).ready(function() {
    $('tr:gt(0)').each(function () {
        var txt = $(this).find("td:last").text();
        txt = parseInt(txt);
        if (txt = txt) {
            $(this).addClass("alert alert-danger");
        }
    });
});
</script>

标签: jquery

解决方案


您正在使用赋值运算符而不是比较运算符

改变这个

if (txt = txt)

对此

if (txt == txt)

此外,您当前正在做的事情将始终处于真实状态

   var txt = $(this).find("td:last").text();
       txt = parseInt(txt);

因为您获得了文本并将其自身解析为number值。然后匹配相同的txt值。这将永远是true

更新

您可以根据类名对行进行分组,如下所示,但是您可以根据自己的方便更改颜色。

  
   $('tr:gt(0)').each(function () {
     	var rowClass= $(this).attr('class');
      var back = ["#ff0000","blue","gray"];
      var rand = back[Math.floor(Math.random() * back.length)];
      if(rowClass.length>0){
         $('tr.'+rowClass).css('background-color',rand)
       }
    });
    
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table border="1">
<tr class="">
    <td>Hello</td>
  </tr>
	<tr class="">
    <td>Hello</td>
  </tr>
	<tr class="7998">
    <td>Hello</td>
  </tr>
	<tr class="7998"><td>Hello</td></tr>
	<tr class="7998"><td>7998</td></tr>
	<tr class="8142"><td>Hello</td></tr>
	<tr class=""><td>Hello</td></tr>
	<tr class=""><td>Hello</td></tr>
	<tr class="7730"><td>Hello</td></tr>
	<tr class="7730"><td>Hello</td></tr>
	<tr class="7730"><td>7730</td></tr>
	<tr class="7730"><td>Hello</td></tr>
	<tr class="7957"><td>7957</td></tr>
	<tr class=""><td>Hello</td></tr>
  </table>


推荐阅读