fly*_*ire 8 html javascript jquery
一个jQuery最佳实践问题.
我正在编写一个非常jQuery密集的网页.我是jQuery的新手,并注意到它的强大功能,但是当我带来了大量的javascript经验和知识时,我的问题是:在jQuery中应该做些什么以及在普通的javascript中做什么.
例如,有一些回调将普通的DOM对象作为参数发送.我应该使用它还是应该包装它(如$(this)).
如果我这样做是重要的.x = y或$(this).attr("x",y).
如果您的函数接收 DOM 对象并且您不需要该 DOM 对象的任何 jQuery 功能,则无需将其转换为 jQuery 对象。例如,如果您收到一个复选框对象,您可以检查该checked属性,而无需使用任何 jQuery。
但是,如果您需要导航到该复选框中的其他元素,则可能值得对其进行转换:
function yourCallback(cb) {
cb = $(cb);
var sel = $(cb).closest('td').next().find('select');
// For example, update the options in a neighboring select field
...
}
Run Code Online (Sandbox Code Playgroud)
jQuery(和其他库一样)与原生 JS 顺利融合。如果您需要额外的功能,请增强相关对象。
至于你的最后一个问题:你可能会发现该data函数对于避免非标准 DOM 属性很有用。如果你的x问题中的属性实际上是一个有效的 DOM 属性,你可以写 或this.x = y,$(this).attr('x', y)IMO 这并不重要。但是,如果x不是 DOM 属性,请使用
$(this).data('key', value)
Run Code Online (Sandbox Code Playgroud)
这样,您就可以使用 DOM 元素存储任意键值对,其中value可以是任意原始值或对象。