今天在改一个新人写的代码,好吧,我承认改代码比自己写代码要来的痛苦。

主要是在测试一个table。table中有一列是删除操作。我的删除功能是 这样的,当点击删除的时候,判断这个table中的tr行是否大于1,如果等于1的话,我就查询上一页的数据(因为此页仅有的一条数据将会从数据库中删除)。如果大于1的话,就继续重新查询这条数据。(本来以我的作风就不再调用查询接口查询数据,我会直接将table中的这一行从页面中删除掉,但是原代码是新同事写的,我就没有这样去做了。就直接在他的基础上去改了。他的本意是删除之后直接调用查询,但是他查询的永远是第一页的数据,其实这样是不合理的。)

然后我这边的判断就会出问题了,永远是大于1.

后来我终于发现原因。新人的写法大致是这样的(我简写出来显示给大家看的)

大家可以看到,查询方法的第一个用到的是empty()。在ajax请求成功以后,用的是append。这样的话,页面中反复分页查询的时候,如果去审查元素就会发现,tbody里面有很的空的<tr></tr>。这就是为什么当我去判断tbody中tr的长度的时候,总是大于1。在这里,我们应该用$("table tbody tr").remove()才行。

那么总结一下,什么时候该用到empty()和remove()呢?

其实empty()就是将元素内容置空。比方这样的一个<label>name</labe>这个时候,我们如果要替换内容,可以用$("label").empty(),和$("label").text("")类似。

如果$("label").remove().就是将这个label元素直接移除了。那么审查元素的时候,就个元素就不存在了。

所以在做项目中的时候,要合理利用这两个方法。

两个方法各有各的好处,我用的比较多的是remove()。

说一说Jquery中的empty()与remove()的区别和用法的更多相关文章

  1. jQuery中的bind() live() delegate()之间区别分析

    jQuery中的bind() live() delegate()之间区别分析 首先,你得要了解我们的事件冒泡(事件传播)的概念,我先看一张图 1.bind方式 $('a').bind('click', ...

  2. 深入理解jQuery中live与bind方法的区别

    本篇文章主要是对jQuery中live与bind方法的区别进行了详细的分析介绍,需要的朋友可以过来参考下,希望对大家有所帮助 注意如果是通过jq添加的层和对象一定要用live(),用其他的都不起作用 ...

  3. jQuery中attr和prop方法的区别说明

    jquery中attr和prop的基本区别可以理解为:如果是内置属性,建议用prop,如果是自定义的建议用attr. 例如 <input type=check  node=123 id=ck & ...

  4. jquery中的$().each和$.each的区别

    jquery中的$().each和$.each的区别 注意:jquery中的$().each和$.each的区别,前者只能遍历数组,后者可以遍历数组和对象 备注:sinobook项目中地名本体相关地按 ...

  5. jQuery中attr和prop方法的区别

    jQuery中attr和prop方法的区别。 http://my.oschina.net/bosscheng/blog/125833 http://www.javascript100.com/?p=8 ...

  6. jquery中的this与$(this)的区别总结(this:html元素)($(this):JQuery对象)

    jquery中的this与$(this)的区别总结(this:html元素)($(this):JQuery对象) 一.总结 1.this所指的是html 元素,有html的属性,可用 this.属性  ...

  7. jquery 中 html与text函数的区别

    jquery 中 html与text函数的区别 共同点:它们都能讲函数中的参数渲染到页面中: 异同点: text() 只是简单的讲参数的内容写入到页面中: html() 会根据参数的值,判断是否字体符 ...

  8. 前端开发入门到进阶附录一【JQuery中parent(),parents(),parentsUntil()区别和使用技巧】

    JQuery中parent(),parents(),parentsUntil()区别和使用技巧:https://blog.csdn.net/china1223/article/details/5193 ...

  9. Linq中 AsQueryable(), AsEnumerable()和ToList()的区别和用法

    Linq中 AsQueryable(), AsEnumerable()和ToList()的区别和用法:在写LINQ语句的时候,往往会看到AsEnumerable() ,AsQueryable() 和T ...

随机推荐

  1. MVC 树节点Table格式授权

    这几夜心里颇不平静, 奈何 JS水平有限,前台效果耗时四天,后台传值一天,直至昨夜丑时测试初步完成,其实就是一个给tree来授权,网上开源的插件很多,如treejs.easyui 等等,只是这里授权稍 ...

  2. 实现最简单PHP MVC实例

    关于网上大多MVC的简介我就不再多说,就是Model(模型)View(视图) C(控制器)这里作为一个刚入门PHP MVC框架的我,这里我搭建一个最简易的mvc项目,从而理解MVC 1在apache服 ...

  3. swiper.js 碰到的坑

    1. swiper隐藏之后,再显示,滑动不流畅,且无限滑动会失败: 解决方法: 添加一下两个属性 observer: true,//修改swiper自己或子元素时,自动初始化swiper observ ...

  4. 简单轻量级的一套JS 类库(RapidDevelopmentFramework.JS)

    1.最近好久没有更新自己的博客了,一直在考虑自己应该写一些什么.4.2日从苏州回到南京的路上感觉自己的内心些崩溃和失落,我就不多说了? 猛然之间我认为自己需要找一下内心的平衡.决定开发属于自己一套快速 ...

  5. TortoiseGit保存密码

    TortoiseGit保存密码 方法一:使用Bash命令 1.设置name和emailgit config --global user.name "yilei"git config ...

  6. mybatis介绍与环境搭建

    一.不用纯jdbc的原因,即缺点. 1.数据库理解,使用时创建,不用时释放,会对数据库进行频繁的链接开启和关闭,造成数据库的资源浪费,影响数据库的性能.设想:使用数据库的连接池.2.将sql语句硬编码 ...

  7. workerman启动失败解决

    提示stream_socket_server(): unable to connect to tcp://0.0.0.0:2120 (Address already in use)php xxx.ph ...

  8. 【LeetCode】105 & 106. Construct Binary Tree from Inorder and Postorder Traversal

    题目: Given inorder and postorder traversal of a tree, construct the binary tree. Note:You may assume ...

  9. keyStore很重要,千万不能丢失

    打包apk的时候需要对apk文件进行签名,如果想要自己给apk签名那么就要自己创建keystore.1.签名的意义为了保证每个应用程序开发商合法ID,防止部分开放商可能通过使用相同的Package N ...

  10. (cljs/run-at (JSVM. :all) "一起实现柯里化")

    前言  习惯了Ramda.js就会潜意识地认为函数均已柯里化,然后就可以随心所欲的用函数生成函数,或者使用compose组合多个函数来生成一个新函数.如下 const f = a => b =& ...