var b = document.getElementsByTagName('body')[0]; var util = function(){}; util.prototype = { createlement:function(element,att){ var el = document.createElement(element); for(var i in att){ el.setAttribute(i,att[i]); } return el; }, getId:function(t){ return document.getElementById(t); } }; var makeInterface = function(){}; makeInterface.prototype = { content:function(e){ var pin = new makeInterface(); var u = new util(); var replacement = e.target.previousSibling.value; var target = b.innerHTML; var pattern = u.getId('patter').value; var newstr = pin.regObject(pattern,replacement,target); b.innerHTML = newstr; e.preventDefault(); }, regObject:function(pattern,replacement,target){ var patobj = new RegExp(pattern,'g'); var reString = target.replace(patobj,replacement); return reString; } }; var u = new util(); var k = new makeInterface(); var form = u.createlement('form',{id:'texter'}); var pat = u.createlement('input',{type:'text',id:'patter'}); var p = u.createlement('div',{id:'test',class:'texter'}); var replaceword = u.createlement('input',{type:'text'}); var submit = u.createlement('input',{type:'submit',value:'変える'}); var div = u.createlement('div',{style:'position:absolute;left:20px;top:30px'}); form.appendChild(pat); form.appendChild(p); form.appendChild(replaceword); form.appendChild(submit); div.appendChild(form); b.appendChild(div); submit.addEventListener('click',k.content,false);
テキスト部分をまとめて置き換えたくて書いた。
よくない所は、書き換えたあとの文字列をinnerHTMLでまるっと変えてるのでイベントが動かなくなる。なにかうまいやり方はあるのかな。
innerHTMLのeventに関する罠 - Yuta.Kikuchiの日記