如何循环每个表并使用Jquery在运行时写入状态?

时间:2015-08-24 09:49:49

标签: jquery html css

以下代码有助于获取每个表中的行数。

$(document).ready(function(){

    $(".assertionTable").each(function(){

       var test=$(this).find("tr").length;
        document.write(test);

    });

});

但是,我有另一个问题。我只想获得单元格值,如果单元格包含" FAILED"关键字然后它需要在运行时写入状态。请在下面找到示例代码:

$(document).ready(function(){

    $(".assertionTable").each(function(){

       var test=$(this).find("tr td:last-child").is(':contains("FAILED")'); //Just assume that I have two table in a page, and one table contains "FAILED", and other table not contains that keyword. So It returns true, false in output console which is expected.

基于该值,我只需要将主状态写为PASSED或FAILED。 假设每张桌子都有自己的" .mainStatus"类。

       if(test==true)
       {
           $(".mainStatus").html("FAILED");
       }
        else
        {
         $(".mainStatus").html("PASSED");   
        }

    });

});

不幸的是,它不起作用。我只是想尝试自己,这就是我发布的查询与我的问题类似。我希望你能理解并帮助我。

我没有任何id属性,我只是想通过仅使用类来完成此任务。

请帮帮我。谢谢你提前。

请找到更多信息:How to iterate the elements using index in jquery?

-Sasi

2 个答案:

答案 0 :(得分:0)

请试试这个:

$(document).ready(function(){

    $(".assertionTable").each(function(){

       var test=$(this).find("tr td:last-child").is(':contains("FAILED")');

      var divassertiondatTable = $(this).parent();
      var prevTestStatusDiv = divassertiondatTable.prev(".teststatus");

      if(test==true)
      {
           $(prevTestStatusDiv).find(".status").html("FAILED");
      }
      else
      {
          $(prevTestStatusDiv).find(".status").html("PASSED");   
      }

    });
});

答案 1 :(得分:0)

您应该使用以下代码:

$(document).ready(function(){
    var checkStatus = function(elements){
        elements.each(function(){
            //check it contains the word
            if($(this).is(':contains("FAILED")')){
                //Empty the container and then add dynamic container
                $(this).empty();
                $(this).append('<div class="mainStatus">PASSED</div>');
            }
        })
    };
    $(".assertionTable").each(function(){
        checkStatus($(this).find("tr td:last-child"));
    });
});

如果您仍然遇到任何问题,请与我们联系。