这两天在帮其余项目组的同事作项目,他们使用layui,在使用模板时产生了一个疑问,先上代码html
var getTpl = tpl_crumbs_list.innerHTML
tpl_crumbs_list
没有在js里面定义,只在页面上写了一个<script id="tpl_crumbs_list" type="text/html">...</script>
标签,layui是如何获取到变量tpl_crumbs_list的呢????
先到console输入tpl_crumbs_list
,咔还真没报错,也不是undefined
,好神奇啊,是否是layui遍历了全部的script,将全部非普通type的script都设为全局变量了,先搜script
,好像没有,再搜id
也没有,靠靠靠,什么状况,给layui.js加断点,一个函数一个函数运行,跑到最后tpl_crumbs_list
,也是仍是没值啊
猜测颇有可能与layui没有关系,只要元素有id,就能够经过window[id内容]
获取到此元素,在百度页面实验了一下html5
果真如此app
上百度,好不容易找到了Named access on the Window object函数
上来就说这是很是规标准定义,使用此API会使代码脆弱不健壮,建议使用document.getElementById()
或者document.querySelector()
方法
自我感受英语还行,但读起规范来总感受力不从心ui
主要有下面三种状况spa
name
属性 a, applet, area, embed, form, frameset, img, object
,我本身实验了几个,发现a
便签上有name属性获取不到此元素,form
与img
获取到了下面还有一段看起来费劲,这个方法也不是好方法就不看了,大体能够获得下面结论iframe, applet, form, img, object
等元素有name属性,能够经过window[name值]
获取到该元素,任何当前文档元素有id,能够经过window[id值]
获取该元素code
贤心大神威武,又知道一个小窍门orm