前端js 实现Html标签统一赋值和取值 等通用方法
2018-01-06 10:49
465 查看
通常我们获取Html页面中某个标签的值,需要通过Id标签一个一个去获取,当页面需要获取的值很多时,这样的工作无疑是枯燥且麻烦的,这时候就需要我们写一些用于偷懒的小方法了。总结方法如下:
var util = { init: null }; util.init = function (){ }; /** * 自定义js文件 用于赋值 * 把数据绑定到对象名称为modelName的控件上 * args: * modelName: 对象名称 * dataObj: 数据对象 * example: * <input type="text" name="advModel.name" /> * <input type="text" name="advModel.age" /> * bindData("advModel", {"name" : "zhangsan", "age" : 34}); **/ util.bindData = function (modelName, dataObj) { debugger; var tagArray = $("[name^=" + modelName + "]"); var len = tagArray.length; for (var i = 0; i < len; i++) { var tagObj = tagArray[i]; var name = $(tagObj).attr("name"); var tagName = tagObj.tagName; var type = tagObj.type; if (name == undefined) { continue; } var dataKey = name.substring(name.indexOf(".") + 1); var dataValue = dataObj[dataKey]; if (dataValue == null || dataValue == undefined) { continue; } tagName = tagName.toUpperCase(); if (tagName == "INPUT") { type = type.toUpperCase(); if (type == "TEXT" || type == "HIDDEN") { var comboObj = $("#" + dataKey); //var comboObj = $("[name='" + name + "']"); if (comboObj != null && comboObj != undefined && comboObj.length == 1) { var clazz = comboObj.attr("class"); if (util.assert.isEmpty(clazz) && (type == "TEXT"||type == "HIDDEN")) { comboObj.val(dataValue); } else if (clazz.indexOf("datebox-f") !== -1) { comboObj.datebox("setValue", dataValue); } else if (clazz.indexOf("numberbox-f") !== -1) { comboObj.numberbox("setValue", dataValue); continue; } else if (clazz == "combobox-f combo-f" || clazz == "combo-value") { //$("[name='" + name + "']").combobox("setValue", dataValue); //$("[comboname='" + name + "']").combobox("setValue", dataValue); comboObj.combobox("setValue", dataValue); } } tagObj.value = dataValue; } if (type == "RADIO") { if (tagObj.value == dataValue) { tagObj.checked = true; } } if (type == "CHECKBOX") { for (var m = 0; m < dataValue.length; m++) { var chkValue = dataValue[m]; if (tagObj.value == chkValue) { tagObj.checked = true; } } } } else if (tagName == "SELECT") { } else if (tagN 4000 ame == "TEXTAREA") { tagObj.value = dataValue; } else if (tagName == "SPAN" || tagName == "DIV" || tagName == 'TD') { tagObj.innerHTML = dataValue; } } }; /** * 根据model名把表单中的数据转换为对象 * args: * modelName 对象的名称 * example: * <input type="text" name="userModel.name" /> * <input type="text" name="userModel.age" /> * var userModel =transferModel("userModel"); **/ util.transferModel = function (modelName) { var tagArray = $("[name^=" + modelName + "]"); var len = tagArray.length; var dataObj = {}; for (var i = 0; i < len; i++) { var tagObj = tagArray[i]; var name = $(tagObj).attr("name"); var tagName = tagObj.tagName; var type = tagObj.type; if (name == undefined) { continue; } var dataKey = name.substring(name.indexOf(".") + 1); tagName = tagName.toUpperCase(); if (tagName == "TEXTAREA") { dataObj[dataKey] = tagObj.value; } else if (tagName == "DIV") { dataObj[dataKey] = $("#" + dataKey).html(); } if (tagName == "INPUT") { type = type.toUpperCase(); if (type == "TEXT" || type == "HIDDEN") { dataObj[dataKey] = tagObj.value; } if (type == "RADIO") { if (tagObj.checked) { dataObj[dataKey] = tagObj.value; } } if (type == "CHECKBOX") { if (tagObj.checked) { if (dataObj[dataKey] != undefined && dataObj[dataKey] != null) { var chkArray = dataObj[dataKey]; chkArray.push(tagObj.value); dataObj[dataKey] = chkValArray; } else { var chkValArray = []; chkValArray.push(tagObj.value); dataObj[dataKey] = chkValArray; } } } } } return dataObj; }; //util.assert.isEmpty() //util.assert.isNotEmpty() util.assert = { isBoolean: function (G) { return (typeof G === "boolean"); }, //判断字符串是否由数字组成,则使用RegexHelper的digitMatch //或使用isFinite isNumber: function (G) { return (typeof G === "number" && isFinite(G)); }, isString: function (G) { return (typeof G === "string" || G.constructor == String); }, isFunction: function (G) { var A = {}; return (A.toString.apply(G) === A.toString.apply(Function)); }, isArray: function (G) { return Object.prototype.toString.call(G) === "[object Array]"; }, isObject: function (G) { return (G && (typeof G === "object" || this.isFunction(G)) || false); }, isDefined: function (v) { return typeof v !== 'undefined'; }, isNotDefined: function (v) { return (!util.assert.isDefined(v)); }, /*无法判断对象或数组为空,可以用来判断变量是否为空*/ isEmpty: function (v, allowBlank) { return v === null || v === undefined || ((util.assert.isArray(v) && !v.length)) || (!allowBlank ? v === '' : false); }, isNotEmpty: function (v, allowBlank) { return !util.assert.isEmpty(v, allowBlank); } }; $(document).ready(function () { util.init(); }); ... prompt'''
相关文章推荐
- jquery如何改变html标签的样式(两种实现方法)
- jQuery实现将页面上HTML标签换成另外标签的方法
- html 自定义标签使用实现方法
- php实现html标签闭合检测与修复方法
- php实现网页HTML标签补全方法
- 解析在Android中为TextView增加自定义HTML标签的实现方法
- javascript生成img标签的3种实现方法(对象、方法、html)
- jq 赋值,取值 <p> 标签,以及html() 和text() 区别
- JavaScript检测字符串中是否含有html标签实现方法
- StringUtils.htmlEncode()--html标签过滤方法实现
- Java 语言实现清除带 html 标签的内容方法
- JavaScript检测字符串中是否含有html标签实现方法
- html 自定义标签使用实现方法
- jquery如何改变html标签的样式(两种实现方法)
- html标签的赋值与取值
- php实现过滤表单提交中html标签的方法
- javascript通过获取html标签属性class实现多选项卡的方法
- jquery如何改变html标签的样式(两种实现方法)
- javascript通过获取html标签属性class实现多选项卡的方法
- php实现网页HTML标签补全方法