选择上一个标签元素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');