作为Prototype用户,我应该注意哪些jQuery烦恼?

Abi*_*bie 6 javascript jquery frameworks prototypejs

我们正在考虑将我们的网站从Prototype转换为jQuery.由于对Prototype非常熟悉,我很清楚Prototype的内容,我发现它有限制或烦人.

我对jQuery用户的问题是:在使用jQuery一段时间之后,你觉得什么令人沮丧?是否有关于jQuery的事情让你考虑切换(返回)到Prototype?

tva*_*son 6

我认为唯一能让我知道的是,当我对单个元素进行选择查询时,我必须记住它返回一个元素数组,即使我知道只有一个元素.通常,除非您想直接与元素交互而不是通过jQuery方法,否则这没有任何区别.


Sov*_*iut 3

可能我遇到的唯一真正的问题是 $(this) 范围问题。例如,如果您使用内置的 JQuery .each() 函数对元素和子元素执行嵌套 for 循环,那么 $(this) 指的是什么?在这种情况下,它应该指的是最内部的范围,但并不总是如此。

简单的解决方案是在进一步深入链之前将 $(this) 缓存到变量中:

$("li").each(function() {
    // cache this
    var list_item = $(this);
    // get all child a tags
    list_item.find("a").each(function() {
        // scope of this now relates to a tags
        $(this).hide("slow");
    });
});
Run Code Online (Sandbox Code Playgroud)