这是我的问题,我有jquery UI,我也有一个错误发生在选项卡中,但我希望我的客户找到错误,而不必查看每个选项卡。我的代码应该做的是,如果验证错误是可见的,它将查找与类tabs-panel最接近的LI,然后找到附加到那个li tabs-1等的ID。然后将它放在它对应的Href旁边因为我发现了哪个div存在错误。是的,很疯狂。 appendTo在URL的末尾添加了感叹号,所以我知道这是问题选项卡,稍后我会添加一条消息,我可以做到这一点。谢谢!
$(document).ready(function(){
var finderror = $('.validationError:visible').closest('div[class^="ui-tabs-panel"]').attr('id');
if($('.validationError').is(':visible')) {
$('li a[@href*=' + finderror + ']').appendTo('!');
};
});
答案 0 :(得分:1)
可能是ui-tabs-panel类不是class属性值的第一部分。我认为选择器太具体IMO了,我会把它改成:
closest('div.ui-tabs-panel')
顺便说一句,你应该使用道具,而不是attr。
希望这有帮助。
P.S。而Floremin是正确的,它应该是Append,而不是AppendTo。
进一步编辑:您可能有多个验证错误,因此您实际上需要对它们执行各自的操作,如下所示:
$(document).ready(function(){
$('.validationError:visible').each(function(i, e) {
var finderror = $(e).closest('div.ui-tabs-panel').prop('id');
$('li a[@href*=' + finderror + ']').removeClass("validationError").addClass("validationError");
});
});
而不是感叹号,我会用一个班级来做。
工作代码!
$('.validationError:visible').each(function(i, e) {
var finderror = $(e).closest('div#tabs > div').prop('id');
var errorInf = $('li a[href=#' + finderror + ']');
$(errorInf).append('<span style="color: red; padding: 2px; font-size: 16px;">!</span>');
});
});