选择以前的标签元素JQUERY

时间:2009-09-25 10:48:15

标签: jquery

所以我有一张表格;

<label for="name">Job Date</label><br /><input id="name" class="required" title="Enter a name!" name="name" type="text" />

和一些Jquery循环遍历每个输入类“必需”并查看它是否为空/空白如果是这样,给这个输入一个红色边框颜色,并且标签与它相关的红色;

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中选择以前的标签?

5 个答案:

答案 0 :(得分:5)

如何使用输入字段的id选择相应的标签。所以你可以在任何地方找到标签。

将评论替换为:

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

答案 1 :(得分:2)

你尝试过这个:

$("input").prev("label").css('color','FF0000')

答案 2 :(得分:2)

由于输入元素前面有<br />元素,因此无法使用prev()

怎么样?
$("input").prevAll("label").css('color','FF0000');

或者您可以选择带有

属性的标签元素
$("input").prevAll("label[for=" + $("input").attr ( 'id' ) + "]").css('color','FF0000');

prevAll:查找当前元素前面的所有兄弟元素。

答案 3 :(得分:0)

$(this).prev().prev().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");    
                }

        });
}

答案 4 :(得分:0)

试试这个:

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

或将标签边框样式添加到CSS,因为除非设置了边框类型,否则无法看到边框颜色...标签[for = ID ]的确如前所述。