insertAfter只使用类选择器一次
jQuery .insertAfter only once with a class selector
当输入正确的值时,我有以下代码可以正确地在输入字段后插入成功跨度。但我的问题是,每次我离开球场时,它都会增加跨度。从问题Jquery insertIf元素只存在一次之后,我知道我可以在创建时设置跨度的ID,并在每次事件触发时检查长度,看看它是否已经存在。但我不确定在使用类选择字段时如何做到这一点。
任何关于类选择器的帮助都会很有帮助。
$(".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();
}
});
这应该会有所帮助。
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/
这将进行检查以确保下一个元素是一个跨度,它还包括一个删除函数,如果以后更改值,它将删除有效的跨度,但仅当下一个元件已经是有效的跨度时。
使用121或test作为jsFiddle中的测试。
试试这个小提琴:https://jsfiddle.net/8jpc74z8/
我在这里所做的只是检查是否有任何已经添加到systemFieldName的同级。如果没有,请添加。
if($(".systemFieldName +.label-success").length === 0){
相关文章:
- insertAfter只使用类选择器一次
- 我如何可以忽略以前的选择,只写最后一次选择
- 在angularjs中一次选择一个项目
- 一次选择一个图像
- 无法在一次选择中选择多个值
- 如何使用 jQuery 选择多个文件.多文件.js插件?使用单个关闭按钮一次选择多个文件
- 每 1 分钟启动一次计时器 Jquery
- Javascript 一次选择所有单选按钮
- 为什么我的Javascript全局变量只更新一次?jQuery最后一个子选择器错误
- Javascript一次选择一行
- 使用下拉列表一次选择一个图表
- 在“选择将打开选项卡更改为新url”上.但是,如果在下一次选择更改时关闭了选项卡,该怎么办
- 使用一个文件元素上传多个文件(没有多个选项).并一次选择一个文件
- Highcharts一次选择多个点
- 如何将一次选择的更改事件的数据附加到第二次选择
- Jquery一次选择所有选中和选中的元素
- 如何一次选择数组中的所有项目,并为它们添加类
- 在angularjs中,如何在不使用单选按钮的情况下一次选择一个复选框
- 一次选择多个数组元素
- 使复选框可以像单选按钮一样一次选择一个