1. 程式人生 > >js控制html標籤轉換

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。看情況使用,本例項需要用到
}

完整原始碼下載