javascript - 额外的 $(...) 电话不好吗?

标签 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);
    });
});

随后(并且不必要地)将该对象包装在 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);
    });
});

最佳答案

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

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

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

当存储对 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);
    });
});

关于javascript - 额外的 $(...) 电话不好吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8394215/

相关文章:

javascript - 谁能告诉我为什么我的 JQuery 插件不起作用?我仔细按照步骤

javascript - 将图像从一个文件夹复制到 digitalocean 空间中的另一个文件夹

javascript - jQuery 根据内部元素值按字母和数字顺序对无序列表进行排序

javascript - 无法在vue单文件组件中循环数组

javascript - 使用 jQuery 在表单外部序列化动态生成的 HTML 输入元素

javascript - 在不更改 DOM 的情况下在 Javascript 中呈现 HTML

jquery - 如何让父div跟随45度旋转的子div的高度

javascript - 使用 Rails 以实时刻度格式显示页面上的当前时间,并每秒更改

javascript - 如何使用 vanilla javascript 将 HTML 附加到两个相似的元素?

javascript - 简单的 vue.js 问卷应用程序中不保留复选框状态