我正在研究别人的
jquery脚本,我注意到他正在打开一个标签而没有关闭它,但它似乎也不关心浏览器(尚未测试IE)
这个已经写完了 :
$('#mydiv').append('<ul>')
但是无处可去
.append('</ul>')
该脚本不会关闭列表,但浏览器会自动执行此操作(我只是在浏览器中执行了“检查元素”).
这是一种“合法”行为,还是应该始终关闭javascript自动生成内容中的标记?
解决方法
要正确地做,你应该追加:
$('#mydiv').append('<ul></ul>')
是的浏览器会处理它(特别是.innerHTML实现处理它,而不是jQuery),至少是主要的,但为什么在所有情况下都不安全并使用有效的标记?
$('#mydiv').append('<ul>')
…仍然调用.innerHTML,而不是createElement,仅在$(‘< ul>‘)中调用document.createElement()
.正如我最初所说,浏览器使用.append()
处理它,而不是jQuery,而不是document.createElement
(不管怎样都不会采用这样的语法).
You can see test/play with what I mean here