首页 > 代码库 > innerText和innerHTML
innerText和innerHTML
起因
由于公司的项目以前不考虑浏览器的兼容性问题,当时只考虑ie8浏览器,封装的控件也只针对ie8,我后面的做的时候,也就针对ie8,最近发现,封装的日期控件,在firefox竟然没法显示出来,去看JavaScript代码,才发现原来是用innerText获取的td的内容,这样在文本框获取日期的时候,一个也不会显示出来
innerText和innertHTML区别
1.innerText是IE4.0出的,不是所有浏览器都可以用的如firefox;而innerHTML是所有浏览器都可以用
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <!--通过选中checkbox获取对应label标签的内容--> <table class = "doc-table" > <tr> <td><strong>爱好:</strong></td> <td> <input type= "checkbox" name= "ckb-love" id= "ckbSing" /> <label id= "lblSing" for = "ckbSing" ><音乐></label> </td> </tr> <tr> <td colspan= "2" > <input type= "button" id= "btnSubmit" value=http://www.mamicode.com/ "提交" /> </td> </tr> </table> |
?
1 2 3 4 5 6 7 8 9 10 11 | window.onload = function () { var btnSubmit = document.getElementById( "btnSubmit" ); btnSubmit.onclick = function () { var ckbEmelents = document.getElementsByName( "ckb-love" ); //获取一组name为ckb-love的多选框 for ( var i = 0; i < ckbEmelents.length; i++) { var id = ckbEmelents[i].id; //拿到当前元素的id var lblEmelent = document.getElementById(id.replace( "ckb" , "lbl" )); //将id进行替换,获取label的内容 alert(lblEmelent.innerText); //在ie、chrome、opera都能显示<音乐> 在firefox中则显示 undefined } } } |
2.innerText会html特殊符号进行编码处理,不用特殊符号,而innerHTML则不会
?
1 2 3 | <div id= "test" > <span style= "color: red" >Hello</span> World! </div> |
?
1 2 3 4 5 | //innerText window.onload = function () { var text = document.getElementById( "test" ).innerText; alert(text); //ie、chrome、opera 显示 Hello World! firefox依然显示 undefined } |
?
1 2 3 4 5 6 | //innerHTML window.onload = function () { var html = document.getElementById( "test" ).innerHTML; alert(html); //ie、chrome、opera、firefox //显示 <span style="color: red">Hello</span> World! } |
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。