选择上一个标签元素JQUERY

选择上一个标签元素JQUERY,jquery,Jquery,所以我有一个表格 <label for="name">Job Date</label><br /><input id="name" class="required" title="Enter a name!" name="name" type="text" /> 一些Jquery使用required类遍历每个输入,查看它是否为空/空白,如果是,则为该输入指定一个红色边框,并为与其关联的标签指定一个红色 function checkreview()

所以我有一个表格

<label for="name">Job Date</label><br /><input id="name" class="required" title="Enter a name!" name="name" type="text" />
一些Jquery使用required类遍历每个输入,查看它是否为空/空白,如果是,则为该输入指定一个红色边框,并为与其关联的标签指定一个红色

function checkreview()
    {   
        var errors = "";
        $(".required").each(function (i) 
        {
            if($(this).val() == "")
            {
                errors += $(this).attr('title')+'<br />';
                $(this).css('border-color','#FF0000');
                //need to select previous label and set color to red                
            }

        });


}
所以我需要一个选择器,它将选择上一个标签,并允许我给它.css'color','FF0000'

您知道如何在JQUERY中选择上一个标签吗?

您尝试过以下方法吗:

$("input").prev("label").css('color','FF0000')
但我会使用css类,而不是将样式应用于jQuery:

<style>
div.form label {display:block;}
label.error {color:FF0000}
input.error {border-color:FF0000}
</style>

<div class="form">
<label for="name">Job Date</label>
<input id="name" class="required" title="Enter a name!" name="name" type="text" />
</div>
验证将更改为:

function checkreview()
{   
        var errors = "";
        $(".required").each(function (i) 
        {
                if($(this).val() == "")
                {
                        errors += $(this).attr('title')+'<br />';
                        $(this).addClass("error");
                        $(this).prev().addClass("error");    
                }

        });
}
因为在输入元素之前有一个元素,所以不能使用prev

那怎么办

$("input").prevAll("label").css('color','FF0000');
或者,可以选择具有属性的label元素

$("input").prevAll("label[for=" + $("input").attr ( 'id' ) + "]").css('color','FF0000');

:查找当前元素前面的所有同级元素。

如何使用输入字段的id选择相应的标签。因此,无论标签在哪里,您都可以找到它

将您的评论替换为以下内容:

$('label[for="'+ $(this).attr('id') +'"]').css('color','#FF0000');
试试这个:

$('label[for='+ $(this).attr('id') +']').css('border','#ff0000 1px solid');

或者将标签边框样式添加到CSS中,因为除非设置了边框类型,否则无法看到边框颜色。。。标签[for=ID]的工作原理与前面的回答相同

是的,我试过使用$这个.prevlabel.css'color','FF0000'没有乐趣,谢谢你。我尝试了prev.prev,但仍然没有乐趣,输入框边框确实发生了变化。这是我最初的想法,但这不起作用,我真的认为应该这样做,所以我将更深入地看一看,看看它是否有其他东西阻止了它。它对我有效。也许是别的什么地方出了问题?$'label[for=name]'对您有用吗?我的意思是,$'label[for=name]'返回什么?好的,问题解决了,问题是我缺少十六进制颜色代码中的颜色!!
$('label[for='+ $(this).attr('id') +']').css('border','#ff0000 1px solid');