js控制html標籤轉換
阿新 • • 發佈:2018-11-11
例如 label標籤設定點選事件 轉換成input
方案:因為不能直接修改標籤名 所以換種思路,
- 新建個標籤,
- 原標籤屬性值賦值給新標籤,
- 移除原標籤,
- 加上新標籤
核心程式碼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。看情況使用,本例項需要用到 }