使用jquery选择器获取后面没有图像的所有输入

使用jquery选择器获取后面没有图像的所有输入,jquery,jquery-selectors,Jquery,Jquery Selectors,我正在尝试创建一个选择器,以获取所有输入元素,这些元素后面没有带有验证错误的图像 Html: 带迭代的Jquery(works): $(“#目标”)。单击(函数(){ var errorTooltipIconURL=“xxx”; $(文档)。查找('[data val=“true”]')。每个(函数(){ if($(this).next('.validation错误工具提示图标')。长度==0){ $('')。在(本)之后插入; } }); }); 我尝试的Jquery选择器(不会在最后一

我正在尝试创建一个选择器,以获取所有输入元素,这些元素后面没有带有验证错误的图像

Html:


带迭代的Jquery(works):

$(“#目标”)。单击(函数(){
var errorTooltipIconURL=“xxx”;
$(文档)。查找('[data val=“true”]')。每个(函数(){
if($(this).next('.validation错误工具提示图标')。长度==0){
$('')。在(本)之后插入;
}
});
});
我尝试的Jquery选择器(不会在最后一个之后插入,因为在最后一个输入之后没有其他元素):

$(“#target1”)。单击(函数(){
var errorTooltipIconURL=“xxx”;
$(文档).find('[data val=“true”]+:not(.validation error tooltip icon')).each(函数(){
$('')。在此之前插入;
});
});

这里有一把小提琴可以玩:

选择器需要在选择器两侧留出空间。此外,您不需要
$(文档)。查找
,您只需执行以下操作:

$('[data-val="true"] + :not(.validation-error-tooltip-icon)')

如果只有输入元素,则不会在最后一个元素之后插入验证错误。这也是我的问题,+选择器给你下一个元素。但也许没有下一个元素。如果删除最后一个图像,您将看到它不会重新插入另一个图像。
$("#target").click(function () {
    var errorTooltipIconURL = "xxx";
    $(document).find('[data-val="true"]').each(function () {
        if ($(this).next('.validation-error-tooltip-icon').length == 0) {
            $('<img src="' + errorTooltipIconURL + '" class="validation-error-tooltip-icon" style="visibility: hidden" />').insertAfter(this);
        }
    });
});
$("#target1").click(function () {
    var errorTooltipIconURL = "xxx";
    $(document).find('[data-val="true"]+:not(.validation-error-tooltip-icon)').each(function () {
        $('<img src="' + errorTooltipIconURL + '" class="validation-error-tooltip-icon" style="visibility: hidden" />').insertBefore(this);    
    });
});
$('[data-val="true"] + :not(.validation-error-tooltip-icon)')