jQuery更改匹配文本
问题描述:
我想更改文本,其中td值为:"null"
至"Not 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);
var prazno = $("thead tr td:nth-child(3)").text();
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>");
if ($("thead tr td:nth-child(3)").text("null")) {
$("thead tr td:nth-child(3)").text("No rating found!")
}
}
}});
}
您必须输入类似"bad"
的内容才能看到结果。
答
返回true
增加了一个评级类和技巧的工作。检查并尝试下面的代码:
$(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);
var prazno = $("thead tr td:nth-child(3)").text();
for(var i = 0; i < data.length; i++){
\t $("thead").first().append("<tr>" + "<td>" + data[i].show.id + "</td>" + "<td>" + data[i].show.name + "</td>" + "<td class='rating'>" + data[i].show.rating.average + "</td>" +"</tr>");
}
$(".rating").each(function(){
if($(this).text() == 'null')
$(this).text('No rating found!');
});
}});
}
答
健康检查是错误的
if ($("thead tr td:nth-child(3)").text("null")) {
$("thead tr td:nth-child(3)").text("No rating found!")
}
你设置值,而不是检查它,以便evertime它$(selector).text("null")
if ($("thead tr td:nth-child(3)").text() === "null") {
$("thead tr td:nth-child(3)").text("No rating found!")
}
答
只需更换到
if (!$("thead tr td:nth-child(3)").text())
答
除了文字错误,你是通过行循环,但只检查第一排第三个TD。
您需要更改下面的代码。
$(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);
var prazno = $("thead tr td:nth-child(3)").text();
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>");
var td = $("thead tr").eq(i).find("td:nth-child(3)");
if (td.html() === "null") {
td.html("No rating found!")
}
}
}});
}
你也可以使用你用于td的nth-child选择器。
$("thead tr:nth-child("+i+") td:nth-child(3)");
+0
这似乎正在工作! – Slasher
'如果($( “THEAD TR TD:第n个孩子(3)”。)文本( “空”)){'你在这里设置文本'null',但要比较:'if($(“thead tr td:nth-child(3)”)。text()===“null”){' – empiric