使用jQuery删除DOM元素

时间:2010-09-30 18:42:40

标签: jquery

我有一个自定义错误脚本,如果用户尝试提交表单并且验证失败,则会在页面上显示自定义错误消息。

关于输入元素的焦点(验证失败的输入)我试图删除我添加的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');
});

2 个答案:

答案 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();