Skip to content Skip to sidebar Skip to footer

Remove Div If Exits After Div And Put Inside The Main Div

Please Enter Email
Lorem Ip

Solution 1:

Here is your answer

You are using

$(this).nextAll(".i-icon-div:first").remove();
//$(this) is null in code//if you use .each you can get each element in $(this)

Use

$(".error" ).nextAll(".i-icon-div:first").appendTo('.error')

Jquery Code

$('.error').each(function(index, element) {
if($(this).nextAll(".i-icon-div:first").length > 0){
    $(this).nextAll(".i-icon-div:first").appendTo($(this))
}
});

For shorter code You can save selected element in variable like

$ele = $(".error" ).nextAll(".i-icon-div:first")
if($ele.length > 0){
              $ele.appendTo('.error')
    }

Here is jsfiddle which works great http://jsfiddle.net/krunalp1993/e43dk/3/

Hope this helps you :)

Solution 2:

I think you can use the next adjuscent sibling selector

var $error = $('.error');
$('.error + .i-icon-div').appendTo($error)

Demo: Fiddle

Solution 3:

You are probably using $(this) without right context, if statement is not jQuery function where this is using for current element. You can put the required element in some variable and later use it in if condition.

reqDiv = $(".error" ).nextAll(".i-icon-div:first");
if(reqDiv.length > 0){
  alert("div exits");
  //  reqDiv.remove(); 
  or
  $('.error').append(reqDiv);   
}

Solution 4:

It's better to loop through all your .error and insert the icon after .error-message if it fulfil your requirement like below:

$.each($(".error"), function () {
    var firstIcon = $(this).nextAll(".i-icon-div:first"),
        errorMessage = $(this).find('.error-message');

    if (firstIcon.length > 0) {
        firstIcon.insertAfter(errorMessage);
    }
})

Fiddle Demo

Post a Comment for "Remove Div If Exits After Div And Put Inside The Main Div"