Jquery 在多个场景下选择上一段落标记

Jquery 在多个场景下选择上一段落标记,jquery,Jquery,我是jQuery新手,想知道在两种不同的DOM场景下是否有一种优雅的方法来选择标记。我使用jQuery验证表单,并在输入值为空时向段落标记添加错误类(将文本加粗并以红色突出显示)。DOM中存在一些段落和输入标记,如下所示: <td><p>Name:</p></td><td><input type="text" name="field_name"></td> <td><p>Name:<

我是jQuery新手,想知道在两种不同的DOM场景下是否有一种优雅的方法来选择标记。我使用jQuery验证表单,并在输入值为空时向段落标记添加错误类(将文本加粗并以红色突出显示)。DOM中存在一些段落和输入标记,如下所示:

<td><p>Name:</p></td><td><input type="text" name="field_name"></td>
<td><p>Name:</p><input type="text" name="field_name"></td>
$("#form_id").submit(function() {
    var answer = true;
    $(this).find(".required").map(function() {
        if(!$(this).val()) {
            $(this).closest("td").prev("td").find("p").addClass("form_error");
            answer = false;
        }
        else {
            $(this).closest("td").prev("td").find("p").removeClass("form_error");
        }
    });
    return answer;
});
关键是:

$(this).closest("td").prev("td").find("p").addClass("form_error");

在我的第一个DOM场景中,这是对p标记的显式选择,但在第二个场景中它当然失败了。我正在寻找一行代码,可以在两种情况下选择p标记。我一直在玩
.prev(“p”)
,但到目前为止还没有弄明白。有什么方法可以做到这一点吗?

如果文本输入及其标题(在
标记中的文本)是一行中仅有的两个,您可以使用如下选择器之一:

$('.required').parents('tr:first').find('p').addClass('form_error');

$('.required').closest('tr').find('p').addClass('form_error');

下面是上述解决方案的一部分:

发布一些更完整的HTML会有所帮助。其他信息:我的问题中列出的行所在的表嵌套在另一个表中