所以我有一张表格;
<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中选择以前的标签?
答案 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 ]的确如前所述。