jQuery .insertAfter 仅使用 class 选择器执行一次
jQuery .insertAfter only once with a class selector
我有以下代码,当输入正确的值时,它可以在输入字段后正确插入成功跨度。但我的问题是每次我离开现场时它都会增加跨度。从问题 Jquery insertAfter only once if element exist 我知道我可以在创建时设置跨度的 ID,并在每次事件触发时检查长度以查看它是否已经存在。但是我不确定在使用 class 到 select 字段时该怎么做。
任何有关 class select 的帮助都会有所帮助。
$(".systemFieldName").blur(function(){
var val = $(this).val();
var exists = $.inArray(val,allFields);
if (val!="" && exists>=0){
$("<span class='label label-success'>Valid</span>").insertAfter(this).one();
}
});
试试这个 fiddle:https://jsfiddle.net/8jpc74z8/
我在这里所做的只是检查是否有任何已添加到 systemFieldName 的兄弟。如果没有,则添加。
if($(".systemFieldName +.label-success").length === 0){
这应该有所帮助。
allFields=["121",'test'];
$(".systemFieldName").blur(function(){
var val = $(this).val();
var exists = $.inArray(val,allFields);
//See if the next element is a span with class label.
var nextEl=$(this).next(); //next element
var add=true; //add by default
if(nextEl.hasClass('label-success')) add=false; //don't add.
if (val!="" && exists>=0 && add){ //only insert if all conditions are true.
$("<span class='label label-success'>Valid</span>").insertAfter(this).one();
}else if((val == "" || exists < 0) && !add) { // The !add means there is already the Valid span, we can safely remove nextEl, if the value changes.
nextEl.remove();
}
});
https://jsfiddle.net/ym66f48p/2/
这会检查以确保下一个元素是一个跨度,它还包括一个删除函数,如果稍后更改值,它将删除有效的跨度,但前提是下一个元素已经是一个有效的跨度.
在 jsFiddle 中使用 121 或测试作为测试。
我有以下代码,当输入正确的值时,它可以在输入字段后正确插入成功跨度。但我的问题是每次我离开现场时它都会增加跨度。从问题 Jquery insertAfter only once if element exist 我知道我可以在创建时设置跨度的 ID,并在每次事件触发时检查长度以查看它是否已经存在。但是我不确定在使用 class 到 select 字段时该怎么做。
任何有关 class select 的帮助都会有所帮助。
$(".systemFieldName").blur(function(){
var val = $(this).val();
var exists = $.inArray(val,allFields);
if (val!="" && exists>=0){
$("<span class='label label-success'>Valid</span>").insertAfter(this).one();
}
});
试试这个 fiddle:https://jsfiddle.net/8jpc74z8/
我在这里所做的只是检查是否有任何已添加到 systemFieldName 的兄弟。如果没有,则添加。
if($(".systemFieldName +.label-success").length === 0){
这应该有所帮助。
allFields=["121",'test'];
$(".systemFieldName").blur(function(){
var val = $(this).val();
var exists = $.inArray(val,allFields);
//See if the next element is a span with class label.
var nextEl=$(this).next(); //next element
var add=true; //add by default
if(nextEl.hasClass('label-success')) add=false; //don't add.
if (val!="" && exists>=0 && add){ //only insert if all conditions are true.
$("<span class='label label-success'>Valid</span>").insertAfter(this).one();
}else if((val == "" || exists < 0) && !add) { // The !add means there is already the Valid span, we can safely remove nextEl, if the value changes.
nextEl.remove();
}
});
https://jsfiddle.net/ym66f48p/2/
这会检查以确保下一个元素是一个跨度,它还包括一个删除函数,如果稍后更改值,它将删除有效的跨度,但前提是下一个元素已经是一个有效的跨度.
在 jsFiddle 中使用 121 或测试作为测试。