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

时间:2018-08-13 05:53:10

标签: jquery

我要突出显示表行,该行具有由数据库生成的相同类(所以我不知道确切会出现什么类)

以下是HTML标记

enter image description here

到目前为止,我已经尝试过:-

<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>

2 个答案:

答案 0 :(得分:1)

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

更改此

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>

答案 1 :(得分:1)

您看起来像这样吗?

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

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

HTML

<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>

JAVASCRIPT

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");

});

还有JSFiddle示例:http://jsfiddle.net/synz/6284poux/