Jquery 如何将.addClass复制或动态创建相同的类

Jquery 如何将.addClass复制或动态创建相同的类,jquery,Jquery,我想突出显示与数据库生成的类相同的表行(因此我不知道会出现什么类) 下面是HTML标记的样子 到目前为止,我尝试了以下方法:- <script type="text/javascript"> $(document).ready(function() { $('tr:gt(0)').each(function () { var txt = $(this).find("td:last").text(); txt = parseInt(txt);

我想突出显示与数据库生成的类相同的表行(因此我不知道会出现什么类)

下面是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>

$(文档).ready(函数(){
$('tr:gt(0)')。每个(函数(){
var txt=$(this.find(“td:last”).text();
txt=parseInt(txt);
如果(txt=txt){
$(此).addClass(“警报危险”);
}
});
});

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

改变这个

if (txt = txt)
对此

if (txt == txt)
同时,你目前正在做的事情将始终处于真实状态

   var txt = $(this).find("td:last").text();
       txt = parseInt(txt);
因为您获取文本并将其自身解析为
number
value。然后使用相同的
txt
值进行匹配。这将始终是
true

更新

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


$('tr:gt(0)')。每个(函数(){
var rowClass=$(this.attr('class');
var back=[“#ff0000”,“蓝色”,“灰色”];
var rand=back[Math.floor(Math.random()*back.length)];
如果(rowClass.length>0){
$('tr.+rowClass).css('background-color',rand)
}
});

你好
你好
你好
你好
7998
你好
你好
你好
你好
你好
7730
你好
7957
你好

你看起来像这样吗

此示例将突出显示表中具有超过1个相同名称的任何行

如果是单/无,则不会突出显示

HTML


JSFiddle示例:

我相信类名可以以number
https://benfrain.com/when-and-where-you-can-use-numbers-in-id-and-class-names/
。但是,我不确定您的情况下的预期输出。您是否注意到您的
if
块,而不是比较您分配的变量。如果有多组类,您如何决定突出显示哪一组以及使用什么颜色。如果在您的案例中突出显示意味着添加类
alert alert danger
,那么所有突出显示的组看起来不一样吗?这是如此含糊不清。此突出显示是否发生在某些事件上,如
鼠标悬停
,或者只是在呈现表格时更改行的背景色。
警报危险
将使行背景色变为红色。是的,我想要红色的,即使不同的组。这应该不会发生任何事件。检查我问题的更新部分谢谢你的帮助。它在小提琴中起作用。但是我在
td
中没有值,只有
tr
上的类名,如何在不与
td
进行比较的情况下执行此操作,只需比较
tr
类?
<table class="list">
   <tr class="8008"><td>8008</td></tr>
   <tr class="8002"><td>8002</td></tr>
   <tr class="8008"><td>8008</td></tr>
   <tr class="8088"><td>8088</td></tr>
   <tr class=""><td></td></tr>
   <tr class="8077"><td>8077</td></tr>
   <tr class="8077"><td>8077</td></tr>
</table>
var arr1 = [];
var arr2 = [];
$(".list tr").each(function(){
        arr1.push($(this).attr("class"));
});
console.log(arr1.length);
$(".list tr").each(function(index){
        var newArray = arr1.slice();
    newArray.splice(index, 1); // remove index value from an array, so this index != match its own
            console.log(newArray);
    if ($.inArray($(this).attr("class"), newArray ) !== -1)
            $(this).addClass("alert");

});