js控制html标签转换

例如  label标签设置点击事件 转换成input

方案:因为不能直接修改标签名  所以换种思路,

  1. 新建个标签,
  2. 原标签属性值赋值给新标签,
  3. 移除原标签,
  4. 加上新标签

核心代码1 复制:

	var old = document.getElementById(oldId);
	var parent = old.parentNode;
	var newObj = document.createElement(newType);
	
	
	newObj.id = old.id;
	newObj.name = old.name;
	//其他自定义属性

核心代码2 移除旧标签,添加新标签

old.remove();
parent.appendChild(newObj);

核心代码3 添加新方法

//添加方式1
document.getElementById(oldId).onblur = function(){//为新的input添加事件:失去焦点后变成label。看情况使用,本实例需要用到
	change(oldId,newType,oldType);
};

//添加方式2
if (window.addEventListener) {
	//其它浏览器的事件代码: Mozilla, Netscape, Firefox
	//添加的事件的顺序即执行顺序
	//注意用 addEventListener 添加带on的事件,不用加on
	document.getElementById(oldId).addEventListener('blur', change(oldId,newType,oldType), false);
			
} else {
	//IE 的事件代码 在原先事件上添加 add
	document.getElementById(oldId).attachEvent('onBlur', change(oldId,newType,oldType));//为新的input添加事件:失去焦点后变成label。看情况使用,本实例需要用到
}

完整源码下载

猜你喜欢

转载自blog.csdn.net/a1214624851/article/details/79267450