相关疑难解决方法(0)

在现代JavaScript应用程序中使用DOM Level 0的最佳实践

在现代JavaScript应用程序中使用DOM Level 0集合是否有一套商定的"最佳实践" ?(document.forms,document.images等)

在使用jQuery的应用程序中,我注意到,比如使用$(...).html()切换底层节点而不是使用来改变下拉列表的内容element.options[].这是因为最好避免使用DOM 0集合,还是因为jQuery使更改底层DOM结构变得更容易?

编辑:我想部分问题包括旧功能是否可靠的跨浏览器.我记得,曾经有一段时间,IE会<tbody>自动添加标签到你的桌子,而firefox则不会.这使得走在dom tree痛苦的跨浏览器.同样,在更改集合中的选项时element.options[]遇到问题.这些人是否可靠跨浏览器?

javascript jquery dom

23
推荐指数
2
解决办法
1813
查看次数

检索HTML属性值"DOM 0方式"

jQuery有一个attr()方法可以检索给定HTML属性的值.例如:

var foo = document.getElementById("foo");
$(foo).attr("id");
Run Code Online (Sandbox Code Playgroud)

但是,在性能方面,这不是最佳的,因为必须创建jQuery对象才能调用该attr()方法.这表现得更好:foo.id.

所以,理想情况下我们希望避免使用attr().但是,我们可以这样做(对于任何属性)?我相信foo.id并且foo.value是"安全的"(跨浏览器),但我记得有问题foo.href.

以下是我希望能够"直接"检索的各种属性的列表:

对于任何元素:foo.id,foo.name
用于锚定:foo.href,foo.target,foo.rel
对于图像,对象,内置页框:foo.src,foo.width,foo.height
对于表单元素:foo.checked,foo.selected,foo.disabled,foo.readonly,foo.type,foo.value,foo.action

所以问题是:上述表达式是否跨浏览器?我可以安全地使用它们吗?

检查此问题的文章的链接也很不错.

编辑(基于答案):粗体表达式使用不安全!

html javascript cross-browser

4
推荐指数
1
解决办法
3012
查看次数

Debunking .delay()

请参阅马特对这个问题的回答.他说这.delay()让大多数人感到困惑,他给出了以下例子:

$('#foo').hide().delay(2000).slideDown().text('Hello!').delay(2000).hide();

这里的小提琴.有人可以解释一行代码的行为吗?

jquery

3
推荐指数
1
解决办法
240
查看次数

标签 统计

javascript ×2

jquery ×2

cross-browser ×1

dom ×1

html ×1