JQuery中removeProp与removeAttr的区别

  • 1、removeProp()函数详解
    • 语法:
    • 注意:
    • 返回值
    • 移除onclick事件:
  • 2、removeAttr() 函数详解
    • 语法:
    • 注意:

1、removeProp()函数详解

removeProp() :少用删除,将属性值设置为false即可
removeProp() 方法移除由 prop() 方法设置的属性。

语法:

  jQuery 1.6 新增该函数。removeProp()函数的语法如下:

jQueryObject.removeProp( propertyName )

注意:

  removeProp()会移除当前jQuery对象所匹配的每一个元素上指定名称的属性。

返回值

  removeProp()函数的返回值是jQuery类型,返回当前jQuery对象本身。

  window对象或DOM元素的一些内置属性是不允许删除的,如果试图删除这些属性,将会导致浏览器产生一个错误。jQuery首先会将该属性的值赋为undefined,并忽略掉浏览器生成的任何错误信息。

  一般情况下,你最好使用该函数(即removeProp())来删除一些自定义的属性,而不是内置属性。请不要使用本函数(即removeProp())来删除DOM元素的本地属性checked、selected和disabled。这将彻底删除对应的属性,并且,一旦删除之后,你无法再向该DOM元素重新添加对应的属性。请使用prop()函数将其设为false即可,例如:

jQueryObject.prop("checked",false)。

移除onclick事件:

  在IE6 ~ IE8中,removeAttr()函数无法移除行内的onclick事件属性,为了避免潜在的问题,请使用prop()函数,相关代码如下:

jQueryObject.prop("onclick",null);

示例与说明:removeProp()使用例子:

<div id="n1"><p id="n2" class="demo test" data-key="UUID" data_value="1235456465">CodePlayer</p>
</div>

JQuery代码如下:

//在当前页面内追加换行标签和指定的HTML内容
function w( html ){$(document.body).append("<br/>" + html);
}
var $n2 = $("#n2");
$n2.prop("prop_a", "CodePlayer");
$n2.prop( "prop_b", { name: "CodePlayer", age: 20 } );
w( $n2.prop("prop_a") ); // CodePlayer
w( $n2.prop("prop_b") ); // [object Object]// 删除n2 Element对象上的属性prop_a和prop_b
$n2.removeProp("prop_a");
$n2.removeProp("prop_b");
w( $n2.prop("prop_a") ); // undefined
w( $n2.prop("prop_b") ); // undefined// removeProp()只是删除元素(Element对象)自身的data-key属性
// 由于其自身并没有data-key属性,因此不会删除任何属性
// 也不会对上面id为n2的元素节点(HTML文档)的data-key属性造成影响
$n2.removeProp("data-key");
w( $n2.prop("data-key") ); // undefined
// 通过attr()访问元素文档节点中的属性
w( $n2.attr("data-key") ); // UUID

2、removeAttr() 函数详解

  removeAttr()函数用于移除在当前jQuery对象所匹配的每一个元素节点上指定的属性。该函数属于jQuery对象(实例)。如果你需要设置或获取元素节点上的某些属性值,你可以使用attr()函数。

语法:

removeAttr()函数的语法如下:

jQueryObject.removeAttr( attributeNames );

注意:

  removeAttr()会移除当前jQuery对象所匹配的每一个元素上指定名称的属性。
jQuery 1.7 新增支持:你可以传入以空格分隔的字符串,空格隔开的每个子字符串即是需要移除的属性名称。

<div id="n1"><img id="n2" data-id="12" alt="站点名称" title="CodePlayer" src="/image/blank.gif" ><img id="n3" data-id="15" alt="站点logo" title="专注于编程开发技术分享"  src="http://localhost/static/image/site-url.png" >
</div>

JQuery代码如下:

var $imgs = $("img");
// 移除所有img元素的data-id属性
$imgs.removeAttr("data-id");var $n2 = $("#n2");
var $n3 = $("#n3");
document.writeln( $n2.attr("data-id") ); // undefined
document.writeln( $n3.attr("data-id") ); // undefined// 从jQuery 1.7开始,可以同时移除alt和title属性
// 在jQuery 1.6之前的某些版本中,属性名称包含空格会抛出错误"Uncaught InvalidCharacterError:
// The string contains invalid characters. "
// 在jQuery 1.6.x中,属性名称包含空格,不会抛出错误,而是忽略掉本次移除操作
$imgs.removeAttr("alt title");
document.writeln( $n2.attr("alt") ); // undefined (站点名称){小括号内表示在jQuery 1.6.x中的//输出内容,下同}
document.writeln( $n2.attr("title") ); // undefined (CodePlayer)
document.writeln( $n3.attr("alt") ); // undefined (站点logo)
document.writeln( $n3.attr("title") ); // undefined (专注于编程开发技术分享)

JQuery中removeProp()与removeAttr()的区别,You know?相关推荐

  1. JQuery的removeProp()与removeAttr()移除属性的区别

    JQuery的removeProp()与removeAttr()移除属性的区别 ------------removeProp()和removeAttr()函数详解------------------- ...

  2. Jquery中attr与prop的区别

    prop()函数的结果: 1.如果有相应的属性,返回指定属性值. 2.如果没有相应的属性,返回值是空字符串. attr()函数的结果: 1.如果有相应的属性,返回指定属性值. 2.如果没有相应的属性, ...

  3. Jquery中bind和live的区别

    Jquery中bind和live的区别 Jquery中绑定事件有三种方法:以click事件为例 (1)target.click(function(){}); (2)target.bind(" ...

  4. jQuery中eq和get的区别

    jQuery中eq和get的区别 相信大部份人都会把这2个的用法搞错.仔细查看下API文档就可以知道.eq返回的是一个jquery对象,get返回的是一个html 对象数组.举个例子: <p s ...

  5. jQuery中append()和appendTo()的区别

    [前言] 简单总结下jQuery中append()和appendTo()的区别 [主体] 1.简单理解 (插入对象不同) append()前面是被插入的对象,后面是要在对象内插入的元素内容 appen ...

  6. php keydown,JQuery中keyUp和keyDown的区别详解

    这篇文章主要是对JQuery中keyUp与keyDown的区别进行了详细的分析介绍,需要的朋友可以过来参考下,希望对大家有所帮助 定义和用法完整的 key press 过程分为两个部分:1. 按键被按 ...

  7. js中innerHTML和innerText jQuery中html()和text()的区别

    js中innerHTML和innerText的区别 innerHTML innerHTML  会将标签和标签中的内容否获取回来 innerHTML  .innerHTML = '<p>&l ...

  8. jquery中.eq()与:eq()的区别

    在jquery中这两种发法都用来匹配一个给定索引值的元素,但是在写法上稍有区别 .eq(): HTML 代码: <p> This is just a test.</p> < ...

  9. jquery中$.get(),$.post(),$.ajax(),$.getJSON()区别详解以及aja

    <span style="background-color: rgb(255, 255, 255); font-family: Arial, Helvetica, sans-serif ...

最新文章

  1. 2021年大数据Kafka(二):❤️Kafka特点总结和架构❤️
  2. mysql like 命中索引
  3. 卡尔曼滤波 -- 从推导到应用(一) 转有关键思想 K增益是最小 贺一佳博士
  4. easyui 中combogrid 实现多选,反选效果
  5. Xamarin iOS教程之编辑界面编写代码
  6. openssl / vs2019 编译 openssl 1.0.2u 过程说明
  7. Java基础之static关键字的用法
  8. linux内核驱动模块开发makefile实例解析
  9. ajax 请求svg,jQuery append 到AJAX加载的SVG问题
  10. 计算机控制系统a卷-答案,计算机控制系统2010-2011年试题A答案
  11. python遍历文件夹方法
  12. Css绝对定位position
  13. 不读取nan行_一个参数一个Excel表,让你玩转Pandas中read_excel()表格读取!
  14. Matlab:实现菲涅尔直边衍射仿真
  15. Python深度学习笔记04——tensorflow实现神经网络(壹)
  16. 虚拟机镜像克隆、移植
  17. 110配线架打法图解_110配线架怎么安装
  18. 记一次服务器故障带来的网站降权恢复记录
  19. 服务器主板准系统怎么拆,主板准系统及电源装箱步骤完成_技嘉 GA-B85M-D3V_主板评测-中关村在线...
  20. Unity程序框架总结归置系列(3)——事件中心

热门文章

  1. 去除固化后的环氧树脂AB胶
  2. java微信企业号40029,全局错误码
  3. android系统便签 备份,写在安卓系统手机里便笺(记事本)里的内容有什么方法能传到电脑上吗?...
  4. 50.hashMap遍历key-value
  5. Numpy中sum函数的使用方法(Python自带sum函数)
  6. Python timedelta
  7. MySQL中的锁机制详细说明
  8. python的path是什么意思_pythonpath_windows pythonpath_pythonpath环境变量 - 云+社区 - 腾讯云...
  9. 如何优雅便捷的装系统-PE
  10. HashMap扩容操作resize