0

这是我的问题,我有 jquery UI,我也有一个选项卡内发生的错误,但我希望我的客户无需查看每个选项卡即可找到错误。我的代码应该做的是,如果validationerror可见,它将使用类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('!');
    };

 });
4

1 回答 1

1

可能是 ui-tabs-panel 类不是类属性值的第一部分。我认为选择器在 IMO 中过于具体,我会将其更改为:

closest('div.ui-tabs-panel')

顺便说一句,您应该使用 prop,而不是 attr。

希望这可以帮助。

PS 并且 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>');
    });
});
于 2013-04-04T18:18:17.683 回答