2

How can I check if a span exists below my input element and if it exists, I need to add a div dynamically below that span

$('#submit_form .required_text').filter(':visible').each(function () {
var input = $(this);
input.next('div.error_text').remove();
input.removeClass('highlight');
if (!$(this).val()) {
    input.addClass('highlight');
    input.find('span'){
        //then add the div after the span for this element alone
    }
    else{

        input.after('<div class="error_text">Required field</div>');
    }
}
4

2 回答 2

1

通过将标记放在 var 中并将正确的元素选择到另一个 var 中来干燥代码。用于.next()选择输入后的元素。然后评估 nextElement 以确定它是否是一个跨度。

var input = $("input"), nextElement = input.next();
var divHtml = '<div class="error_text">Required field</div>';
var elem = ($(nextElement).is("span")) ? nextElement: input;
$(elem).after(divHtml);

JS 小提琴:http: //jsfiddle.net/Ha4CS/3/

于 2013-10-24T10:42:38.487 回答
0
 if(input.find('span').length)
  {
        // here do your stuff
    }
    else{// not exist 

        input.after('<div class="error_text">Required field</div>');
    }
于 2013-10-24T10:38:33.237 回答