jquery `append()` 是否删除重复的对象?

2024-03-03

我正在使用 jQuery 对表进行排序,大致遵循找到的代码here https://stackoverflow.com/questions/10543618/jquery-sort-a-table-after-adding-a-row-to-it。代码草图如下:

$('.sort-table').click(function(e) {
    // cache objects
    $table  = $('#sort-table'),        // cache the target table DOM element
    $rows   = $('tbody > tr', $table); // cache rows from target table body

    // sort items
    $rows.sort(<my_predicate_function(a,b){...}>);

    // assign to table - what is going on?
    $rows.each(function(index, row){
        $table.append(row);  // <-- how come $table remains the same size?                  
    });
});

虽然代码工作正常,但我对将行附加回表的代码感到困惑,该代码只是迭代排序的行,将每个行附加到行的末尾$table.

我们在任何阶段都没有清空$table来自它以前的孩子。

  • Since $table从来没有被清空过,怎么会$table保持相同的大小?
  • Does append()还强制目标容器中的唯一性?

这就是 DOM 的工作原理。一个元素不能出现在两个不同的地方。如果某个元素已存在于文档中并且您将其放置在其他位置,则它将从当前位置移动。我想,它有点像 Set,但它不是这样指定的。所以它没有删除复制对象,因为永远不会有重复的对象:它只是移动同一个对象,该对象只能存在于一个地方。

From 底层方法的 MDN 文档,Node.appendChild https://developer.mozilla.org/en/docs/Web/API/Node/appendChild:

The Node.appendChild()方法将一个节点添加到指定父节点的子节点列表的末尾。如果给定的子节点是对文档中现有节点的引用,appendChild()将其从当前位置移动到新位置(在将节点附加到其他节点之前不需要从其父节点中删除该节点)。

如果你想复制元素,你需要克隆它们(DOM https://developer.mozilla.org/en/docs/Web/API/Node/cloneNode, jQuery https://api.jquery.com/clone/).

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jquery `append()` 是否删除重复的对象? 的相关文章

随机推荐

  • 如何让背景图像跨越网格布局

    我有一个网格布局 假设第一行有 2 行 2 列 第二行有 3 列 它们之间的网格间隙为 10px 给每个网格一个背景图像是没有问题的 但是 如果我希望它们都具有相同的背景图像 该背景图像从左上角网格开始并继续 跨越直到右下角网格 所有网格上
  • 递归Kaatsuba 乘法不起作用?

    我正在尝试实施唐叶乘法 https en wikipedia org wiki Karatsuba algorithm通过递归调用 下面的代码应该可以工作 但我一直得到错误的答案 有什么想法吗 public static long kara
  • Java RandomString类[重复]

    这个问题在这里已经有答案了 可能的重复 HangMan RandomString 类 https stackoverflow com questions 13818297 hangman randomstring class 以下是方向 创
  • 将 UITableView 添加到现有 ViewController

    我正在尝试添加一个UITableView到现有的UIViewController以编程方式 My run h文件有这个 interface runTests UIViewController
  • 将 process.env.NODE_ENV 与 String 进行比较

    为什么当我比较这两个时我得到false const production process env NODE ENV production 即使当我设置process env NODE ENV到生产我仍然得到false value Why E
  • 获取python项目使用的所有模块/包

    我有一个 python GUI 应用程序 现在我需要知道应用程序链接到的所有库 这样我就可以检查所有库的许可证兼容性 我尝试过使用 strace 但 strace 似乎会报告所有包 即使应用程序未使用它们 而且 我尝试了 python Mo
  • 如何更改 mysql 表列默认值?

    我有一个带有 type 列的表timestamp默认值current timestamp并更新至current timestamp每次更新时 我想删除此列上的 更新时 功能 怎样写alter语句呢 我尝试了以下方法 ALTER TABLE
  • 模块在角度模块中没有导出成员错误

    我想创建一个功能模块来处理上传的前端 上传组件 html没有错误
  • 从 Eclipse 插件使用 Jython

    当从 Eclipse 插件运行时 我很难让 jython 正常工作 我有一个简单的对象工厂 它加载符合 Java 接口的 python 模块 所有这些在独立模式下都可以正常工作 然而 当我将其打包为 Eclipse 插件时 我根据一些变量收
  • gnu sort - 默认缓冲区大小

    我已阅读全文文档 http www gnu org software coreutils manual html node sort invocation html sort invocation对于 gnu sort 并在线搜索 但我找不
  • JS 将 blob url 转换为 Base64 文件

    有如下代码 console log blob var reader new window FileReader reader onloadend function console log reader result reader readA
  • 如何在 Flutter 中点击其他小部件时打开 DropdownButton?

    我需要有一个DropdownButton当点击其他一些小部件时 选项列表会以编程方式打开 显示 我知道这可能不是 UI 最佳实践 但我需要这种行为 举个例子 在像下面这样的结构中 我可能需要用胶带固定Text every 来打开邻近的Dro
  • 在 php 下拉列表中设置默认选项并在提交查询时保留

    我有下面的代码 它从 php ini 创建下拉菜单 我想在这里实现两件事 1 我想将其中一个选项设置为默认 它可以是硬编码的或从查询中选择的 2 当按下按钮时 应保留所选选项 我可以使用会话数据检索所选选项 echo print versi
  • PostgreSQL 10 => 11.1 关于 Brew 更新问题

    试图找到一条迁移路线PostgreSQL 10 6 to postgreSQL 11 1 Using pg upgrade 从两个版本 给我错误 从11 1我认为这将用于将过时的表格转换为货币 usr local Cellar postgr
  • 检查 ipython 中最后一个命令的退出状态

    有谁知道如何在 ipython 中检查最后执行的命令 退出代码 的状态 它应该存储为 exit code运行命令后 至少在即将发布的 v0 11 版本中
  • 实现基于查表的三角函数

    对于我在业余时间实现的视频游戏 我尝试使用查找表实现我自己的 sinf cosf 和 atan2f 版本 目的是使实现速度更快 但准确性较低 我的初步实现如下 这些函数可以工作 并返回良好的近似值 唯一的问题是他们是slower而不是调用标
  • python中获取shell命令的返回值

    我正在做os system追踪实时文件并grep对于一个字符串 grep 成功后如何执行某些操作 例如 cmd os system tail f file log grep i abc if cmd Do something and con
  • 检查表达式是否有效

    由于未捕获的异常而终止应用程序 NSInvalidArgumentException 原因 无法解析格式 字符串 12 6 1 我想验证表达式是否有效 我正在尝试使用以下代码 let equationString 12 6 do let e
  • 添加到别人对我不拥有的 GitHub 项目的拉取请求

    我可以添加提交吗别人的在我不是所有者的存储库上拉取请求 e g 用户 A 拥有项目 X 用户 B 分叉项目 X 创建功能分支 进行一些更改 然后提交拉取请求 用户 C 喜欢该拉取请求 但希望对其进行一些修改 FWIW 用户 C 已经拥有项目
  • jquery `append()` 是否删除重复的对象?

    我正在使用 jQuery 对表进行排序 大致遵循找到的代码here https stackoverflow com questions 10543618 jquery sort a table after adding a row to i