额外的$(...)电话坏了吗?

Ada*_*kis 10 javascript jquery

如果我有下拉jQuery对象的代码,然后进一步调用它

$("a.postSyncLink").click(function () {
    var resultsTarget = $("span", $(link).parent().next());
    resultsTarget.html("<img style='position: absolute;' src='" + waitImgUrl + "'/><span>Sync in progress</span>");

    $.get($(this).attr("data-url"), function (returnVal) {
        resultsTarget.text(returnVal);
    });
});
Run Code Online (Sandbox Code Playgroud)

随后(并且不必要地)将该对象包装在jQuery函数中被认为是不好的做法吗?jQuery是否优化了这样多余的调用?

$("a.postSyncLink").click(function () {
    var resultsTarget = $("span", $(link).parent().next());
    $(resultsTarget).html("<img style='position: absolute;' src='" + waitImgUrl + "'/><span>Sync in progress</span>");

    $.get($(this).attr("data-url"), function (returnVal) {
        $(resultsTarget).text(returnVal);
    });
});
Run Code Online (Sandbox Code Playgroud)

Sha*_*had 11

如果他们没有被用来克隆原始的jQuery对象,那么是的,这很糟糕:

http://api.jquery.com/jQuery/#cloning-jquery-objects

jQuery克隆了传递给jQuery的jQuery对象,这是我不会浪费的处理器时间.

当存储对jQuery对象的引用时,我发现用变量名前缀为a很有用$,这有助于我记住它是一个jQuery对象,并且不需要重新包装:

$("a.postSyncLink").click(function () {
    var $resultsTarget = $("span", $(link).parent().next());
    $resultsTarget.html("<img style='position: absolute;' src='" + waitImgUrl + "'/><span>Sync in progress</span>");

    $.get($(this).attr("data-url"), function (returnVal) {
        $resultsTarget.text(returnVal);
    });
});
Run Code Online (Sandbox Code Playgroud)

  • @roXon我使用它因为它提醒我它是一个_jQuery_对象; 它对我来说很直观,而且直观性更快.当然可以使用最直观的东西. (4认同)