2017-05-25 97 views
1

我试图添加仅文本值为:No rating found的类。但似乎即使选择它也不行。我想补充("table-danger")td其中文本是No rating found将文本添加到文本(jQuery)

$(document).ready(function() { 
$(".form-inline").submit(doStuff); 
}); 

function doStuff(e){ 
e.preventDefault(); 

var input = $("#nanizankaInput").val(); 
var link = "http://api.tvmaze.com/search/shows?q="; 
link = link + input; 

$.ajax({ 
    url: link, 
    method: 'GET', 
    success: function (data) { 
     console.log(data); 

    for(var i = 0; i < data.length; i++){ 
    $("thead").first().append("<tr>" + "<td>" + data[i].show.id + "</td>" + "<td>" + data[i].show.name + "</td>" + "<td>" + data[i].show.rating.average + "</td>" +"</tr>"); 
    } 


$("thead tr td").each(function(){ 
     if($(this).text() == 'null') 
      $(this).text('No rating found'); 
    }); 


if ($("thead tr td:nth-child(3)").text() == 'No rating found'){ 
    $("thead tr td:nth-child(3)").addClass("table-danger") 
} 

}}); 
} 

现场演示http://jsbin.com/pimitijigu/edit?html,js,output

回答

1

要做到你需要什么,你可以只是把addClass()呼叫在each()循环你有哪个正在检查td单元中的null值,如下所示:

$("thead tr td").each(function() { 
    if ($(this).text() == 'null') 
    $(this).text('No rating found').addClass('table-danger'); 
}); 

Working example

我想将它添加到整排

在这种情况下,你甚至可以修改其追加HTML在一个单一的过程,执行的逻辑循环。试试这个:

for (var i = 0; i < data.length; i++) { 
    var rating = data[i].show.rating.average, ratingClass = ''; 
    if (!rating) { 
    rating = 'No rating found'; 
    ratingClass = 'table-danger'; 
    } 

    $("thead").first().append('<tr class="' + ratingClass + '"><td>' + data[i].show.id + '</td><td>' + data[i].show.name + '</td><td>' + rating + '</td></tr>'); 
} 

Working example

+0

这增加了类,TD:只有第n个孩子(3)元素。但我想将它添加到整行“td”。 – Slasher

+0

我为你更新了答案 –