[英]Jquery each function only working once
我有以下jQuery函数。 它只会更新第一行,然后停止。 奇怪的是,如果我把线拔掉了:
$("#prev_loan_approval_date").html("Not Yet Approved");
并替换为每行触发的警报。 有什么理由会发生这种情况。 我以为它可能不会在下一次迭代中返回true,因为我更改了文本值,但这是针对上一行的,因此下一行仍应返回true并更改值。
$(document).ready(function() {
$('.loan_history_application > tbody > tr').each(function()
{
if ($("#prev_loan_approval_date").text() == "01/01/1900")
{
$("#prev_loan_approval_date").html("Not Yet Approved");
};
});
tr有一个孩子“ #prev_loan_approval_date”? 如果是,您必须写
$(document).ready(function() {
$('.loan_history_application > tbody > tr').each(function()
{
if ($(this).find("#prev_loan_approval_date").text() == "01/01/1900")
{
$(this).find("#prev_loan_approval_date").html("Not Yet Approved");
};
});
问题可能是您在$("#prev_loan_approval_date").html("Not Yet Approved");
使用ID而不是类$("#prev_loan_approval_date").html("Not Yet Approved");
因此它只会更新第一行。
更改为:
$(".prev_loan_approval_date").html("Not Yet Approved");
并确保您还更改ID以在HTML中进行分类。
如果您有多个具有相同ID的商品,则无法使用。 ID应该是唯一的。 将它们更改为class并更改您的代码:
$(".prev_loan_approval_date").html("Not Yet Approved");
完整代码:
$(document).ready(function() {
$('.loan_history_application > tbody > tr').each(function() {
if ($(this).find(".prev_loan_approval_date").text() == "01/01/1900")
$(this).find(".prev_loan_approval_date").html("Not Yet Approved");
});
});
认为下一次迭代可能不会返回true,因为我更改了文本值,但这是针对上一行的
不,这不适用于上一行。 这里有几处错误。 首先,您将ID用于似乎多次发生的事情(ID必须是唯一的)。 您应该使用一个类。
其次,您要在其中更改文本的地方-您不是仅针对该行进行更改。 您总是在每一行上都这样做。
$(document).ready(function() {
$('.loan_history_application > tbody > tr').each(function() {
if ($(".prev_loan_approval_date", this).text() == "01/01/1900")
{
$(".prev_loan_approval_date",this).html("Not Yet Approved");
};
});
然后在您的HTML id='prev_load_approval_date'
更改为class='prev_loan_approval_date'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.