我有与多个控件关联的标注标签,当其中任何一个错误时,它应该变为红色。
<tr>
<th>
<asp:Label for="test">jquery will make my class as updnValidationErrorLabel</asp:Label>
</th>
<td > this text is right
<asp:TextBox class='textboxWide taskListCheckPreVital' />
</td>
<td>this is wrong text hence it has updnValidationErrorInput
<asp:TextBox class='dummyclass updnValidationErrorInput'/></td>
</tr>
我正在尝试这种方法,但不确定为什么mainparent children元素不会显示为类updnValidationErrorInput
//if my sturcture has updnValidationErrorInput
$('.updnValidationErrorInput').each(function() {
// go to tr element
var mainParent = $(this).parents('tr:first');
// under tr element find updnValidationErrorInput
if(mainParent.children('.updnValidationErrorInput').length > 0){
// set label which has for attribute with updnValidationErrorLabel
mainParent.children('label').attr('for').removeClass().addClass('updnValidationErrorLabel');
}
});
非常感谢任何帮助。
答案 0 :(得分:0)
由于您来自,<input>
.length
支票必须为真,因此您可以删除它们。您可以将其缩短到整体:
$('.updnValidationErrorInput').each(function() {
$(this).cloesest('tr').find('label[for]')
.removeClass().addClass('updnValidationErrorLabel');
});
您可以使用等效(且更便宜).parents('tr:first')
代替.closest()
,然后找到具有<label>
属性的任何for=""
元素,并更改其上的类。