我有一个自定义错误脚本,如果用户尝试提交表单并且验证失败,则会在页面上显示自定义错误消息。
关于输入元素的焦点(验证失败的输入)我试图删除我添加的DOM元素,但它删除了我指定的类名在页面上存在的所有DOM元素。
添加DOM元素:
$('#' + el).closest('tr').addClass('pink_bg');
var error_txt = $('#' + el).attr('rel');
$('#' + el).before('<span class="registration_error_message">' + error_txt + '</span>');
尝试删除DOM元素(这会删除class =“registration_error_message”的所有DOM元素),我想要做的就是删除其中一个元素:
$("#" + el).focusout(function(){
$(this).parent().remove('[class^=registration_error_message]');
$(this).closest('tr').removeClass('pink_bg red_border');
});
答案 0 :(得分:2)
由于您使用jQuery's .before()
method在.registration_error_message
元素之前添加了el
元素,因此您似乎希望use .prev()
代替using .parent()
除去。
$(this).prev().remove('[class^=registration_error_message]');
或者
$(this).prev('[class^=registration_error_message]').remove();
答案 1 :(得分:2)
您可以使用不同的遍历方法来获取您所追求的内容。由于您将其作为之前的兄弟.before()
添加,因此请.siblings()
使用.class
selector,如下所示:
$(this).siblings('.registration_error_message').remove();
//or more specific:
$(this).prev('.registration_error_message').remove();