拓展jquery js动态添加html代码 初始化数据
1 /**
* 新增数据筛选
*/
(function () {
$.filterEvent = function(options){
var _this = this;
var defaults = {
elId: "",
tableId:"",
data:{}
};
var options = $.extend(defaults, options);
var $container = $(options.elId); var html = `<div class="col-xs-12" style="position: relative;">
<div class="pull-right" style="width: 10%;padding-right: 1.2rem;position: absolute;right: 0;top: 0;margin: auto;">
<a id="deleted#key#" class="btn-link pull-right">
<i class="fa fa-times-circle"></i>
</a>
</div>
<div class="input-group m-b">
<span class="input-group-addon">分组标题</span>
<input class="form-control" id="filterName#key#">
</div>
<div class="input-group m-b">
<span class="input-group-addon">第一级字段</span>
<input class="form-control" id="firstFilterField#key#" placeholder="选择字段" readonly="readonly">
<span class="input-group-addon">
<a onclick="select_parent_field('firstFilterField#key#');">
<i class="fa fa-chain"></i>
选择
</a>
</span>
</div>
<div class="input-group m-b">
<span class="input-group-addon">第二级字段</span>
<input class="form-control" id="secondFilterField#key#" placeholder="选择字段" readonly="readonly">
<span class="input-group-addon">
<a onclick="select_parent_field('secondFilterField#key#');">
<i class="fa fa-chain"></i>
选择
</a>
</span>
</div>
<div class="input-group m-b">
<span class="input-group-addon">第三级字段</span>
<input class="form-control" id="thirdFilterField#key#" placeholder="选择字段" readonly="readonly">
<span class="input-group-addon">
<a onclick="select_parent_field('thirdFilterField#key#');">
<i class="fa fa-chain"></i>
选择
</a>
</span>
</div>
</div>`;
/**
* 添加节点
*/
this.newFilterEvent = function(rowJson){
var key = this.newGuid();
var isAdd = false;
if(rowJson == undefined || rowJson == null){
rowJson = {
'filterName' : '',
'firstFilterField' : '',
'secondFilterField' : '',
'thirdFilterField' : ''
};
isAdd = true;
}
options.data[key] = rowJson; var _this = this;
$html = $(html.replace(/#key#/g, key));
$container.append($html); //绑定事件
$html.find("#filterName"+key).change(function(){
var val = $(this).val();
rowJson.filterName = val;
options.data[key] = rowJson;
});
$html.find("#firstFilterField"+key).change(function(){
var val = $(this).val();
rowJson.firstFilterField = val;
options.data[key] = rowJson;
});
$html.find("#secondFilterField"+key).change(function(){
var val = $(this).val();
rowJson.secondFilterField = val;
options.data[key] = rowJson;
});
$html.find("#thirdFilterField"+key).change(function(){
var val = $(this).val();
rowJson.thirdFilterField = val;
options.data[key] = rowJson;
});
$html.find("#deleted"+key).click(function(){
delete options.data[key];
$(this).parent().parent().remove();
}); //初始化数据
if(rowJson.filterName != ''){
$html.find("#filterName"+key).val(rowJson.filterName);
}
if(rowJson.firstFilterField != ''){
$html.find("#firstFilterField"+key).val(rowJson.firstFilterField);
}
if(rowJson.secondFilterField != ''){
$html.find("#secondFilterField"+key).val(rowJson.secondFilterField);
}
if(rowJson.thirdFilterField != ''){
$html.find("#thirdFilterField"+key).val(rowJson.thirdFilterField);
}
}; this.getData = function(){
var eventData = [];
for ( var k in options.data) {
var row = options.data[k];
eventData.push(row);
}
return eventData;
}; this.initData = function(data){
if(data == undefined || data == null){
return;
}
for (var k in data) {
var row = data[k];
this.newFilterEvent(row);
}
}; this.newGuid = function () {
var guid = "";
for (var i = 1; i <= 32; i++) {
var n = Math.floor(Math.random() * 16.0).toString(16);
guid += n;
// if ((i == 8) || (i == 12) || (i == 16) || (i == 20)) guid += "-";
}
return guid;
}; };
})(jQuery);



jquery动态的给div下增加Dom节点:
如图所示:
==》点击新增配置:
在elId下增加如图所示的div,初始化。右边的❌可以删除当前新增的div。
拓展jquery js动态添加html代码 初始化数据的更多相关文章
- jquery实现动态添加html代码
先看下思导图,整体了解下,然后我们再来学习. 现在我们来看一下几段代码,然后根据这几段代码我们来学习一下如何正确的学习动态添加html. 一.html()方法 html函数的作用原理首先是移除目标元素 ...
- js 动态添加input代码
<script type="text/javascript" language="javascript"> function newNode(thi ...
- mui H5 js动态添加不同类型的数据
html页面需要添加的页面的数据格式 <ul class="mui-table-view" id="OA_task_1"> <li class ...
- jquery 动态添加的代码不能触发绑定事件
今天发现jQuery对动态添加的元素不触发事件,比如blur.click事件等 参考文章证明了我的结论,并给出了原因及解决方案 原因:程序找不到动态添加的节点. 解决方案:在绑定父元素后的子元素 $( ...
- [转]jquery append 动态添加的元素事件on 不起作用的解决方案
用jquery添加新元素很容易,面对jquery append 动态添加的元素事件on 不起作用我们该如何解决呢?on方法中要先找到原选择器(如例.info),再找到动态添加的选择器(如列.delet ...
- jQuery对 动态添加 的元素 绑定事件(on()的用法)
从jQuery 版本 1.7 起,on() 方法是向被选元素添加事件处理程序的(官方推荐)首选方法. 当浏览器下载完一个页面的时候就开始渲染(翻译)HTML标签,然后执行css.js代码,在执行js代 ...
- jQuery EasyUI动态添加控件或者ajax加载页面后不能自动渲染问题的解决方法
博客分类: jquery-easyui jQueryAjax框架HTML 现象: AJAX返回的html无法做到自动渲染为EasyUI的样式.比如:class="easyui-layout ...
- jquery append 动态添加的元素事件on 不起作用的解决方案
用jquery添加新元素很容易,面对jquery append 动态添加的元素事件on 不起作用我们该如何解决呢?on方法中要先找到原选择器(如例.info),再找到动态添加的选择器(如列.delet ...
- jquery append 动态添加的元素绑定事件on
用jquery添加新元素很容易,面对jquery append 动态添加的元素事件on 不起作用我们该如何解决呢?on方法中要先找到原选择器(如例.info),再找到动态添加的选择器(如列.delet ...
随机推荐
- Linux下安装与卸载anaconda
安装:到安装文件夹的目录下输入 bash Anaconda3-4.1.1-Linux-x86_64.sh 卸载:输入
- 使用Bootstrap 基于MVC输出移动化table 列表
基于Bootrap的列表组及栅格布局来实现 模型定义 public class StreetEvent { public int Id { get; set; } public string Stre ...
- spark streaming检查点使用
import org.apache.spark._ import org.apache.spark.streaming._ /** * Created by code-pc on 16/3/14. * ...
- VS远程调试与附加调试
使用场景 假如你要开发的程序需要运行在独特的硬件上,比如:服务器,然而这个"独特的硬件"却不能给你装VS,这时候远程调试就登场了. 测试工具/环境一览 Key Value VS版本 ...
- DOM内容操作和自定义、样式改变
自定义 function 方法名或函数名(参数1,参数2,...) { 方法体: return返回值:(可不写) } function abc() { alert("123"); ...
- 解决KVM中宿主机通过console无法连接客户机
转自https://www.linuxidc.com/Linux/2014-10/107891.htm 一.问题描述: KVM中宿主机通过console无法连接客户机,卡在这里不动了. # virsh ...
- nodejs运行的两种方式<小记>
在mac上: 1.方式一:使用IDE运行 配置需要运行的js文件: 配置并运行 ①配置运行的js文件和运行的文件不一致时会导致报错.如图备注 ②当运行另一个文件提示端口8080被占用 ,需要改为其他端 ...
- C# WPF 进度条,根据读取数据显示进度条进度,根据Excel文件读取数据,进度条样式
后台代码: //导入 private void Border_MouseLeftButtonUp_2(object sender, MouseButtonEventArgs e) { var path ...
- [oracle,2017-11-28] 怎么判断oracle数据库中字段是否为空
要给oracle某个字段插入空值非常简单 insert into table(column) values('') 但是查询的时候通过语句 select * from table where colu ...
- 微信小程序笔记<三>入口app.js —— 注册小程序
小程序开发框架在逻辑层使用的语言就是JavaScript,所以想玩小程序JavaScript的基本功一定要扎实.但小程序基于js做了一些修改,以方便开发者更方便的使用微信的一些功能,使得小程序更好的贴 ...