js与jQuery方法对比
javascript与jQuery方法对比
jquery对象转dom对象
// 方式一(推荐使用)
$("input")[0]
// 方式二
$("input").get(0)
// 方式三
$("input").eq(0)[0]
// 方式四
$("input:eq(0)")[0]
var getObjectByJs = document.getElementById("test");
var getObjectByJq = $("#test");
1.高度
| 操作 | javascript | jQuery |
| 取值 | getObjectByJs.style.height;或offsetHeight | getObjectByJq.height(); |
| 赋值 | getObjectByJs.style.height = "50px"; | getObjectByJq.height("50"); |
注:js获取高度的两种方式区别,见文章-js获取高度和宽度
2.宽度 同上 width width()
3.显示与隐藏
| 操作 | javascript | jQuery |
| 显示 | getObjectByJs.style.display = "block"; | getObjectByJq.show(); |
| 隐藏 | getObjectByJs.style.display = "none"; | getObjectByJq.hide(); |
| 获取显示的页面元素 | NULL | :visible |
| 获取隐藏的页面元素 | NULL | :hidden |
4.改变显示所有内容
| 操作 | javascript | jQuery |
| 取值 | getObjectByJs.innerHTML; | getObjectByJq.html(); |
| 赋值 | getObjectByJs.innerHTML = "文本,标签或文本+标签"; | getObjectByJq.html("文本,标签或文本+标签"); |
5.改变显示所有的文本内容
| 操作 | javascript | jQuery |
| 取值 | getObjectByJs.innerText; | getObjectByJq.text(); |
| 赋值 | getObjectByJs.innerText = "文本"; | getObjectByJq.text("只能是文本,非文本内容以文本形式显示"); |
6.标签属性
a.已知属性
| 操作 | javascript | jQuery |
| 取值 | getObjectByJs.name; | getObjectByJq.prop('name'); |
| 赋值 | getObjectByJs.selected = true; | getObjectByJq.prop('selected',true); |
b.自定义属性
| 操作 | javascript | jQuery |
| 取值 | getObjectByJs.getAttribute('onsuccess'); | getObjectByJq.attr('onsuccess'); |
| 赋值 | getObjectByJs.setAttribute('onsuccess','成功'); | getObjectByJq.attr('onsuccess','成功'); |
| 判断某个属性是否存在 | hasAttribute(属性名) | attr() |
c.增加、移除属性
| 操作 | javascript | jQuery |
| 增加 | getObjectByJs.setAttribute("onError",'失败'); | getObjectByJq.attr('onError','失败'); |
| 移除 | getObjectByJs.removeAttribute('onsuccess'); | getObjectByJq.removeAttr('onsuccess'); |
注:
a.jquery的attr()方法对已知属性和自定义属性都有效,
但是当获取"readonly,checked,disabled,selected"等类似属性时,
使用attr()返回的是"readonly,checked,disabled,selected"或"undefined";
使用prop()统一返回的是true或false
b.获取自定义属性
jQuery 只能使用attr()方法;
javascript必须用getAttribute()方法
c.判断是否存在某个属性
建议使用jQuery判断:如果存在则返回属性值,否则返回undefined
javascript的hasAttribute()方法在IE9以下不支持
d.当使用javascript移除"onclick"属性时,IE浏览器存在bug,
window.onload = function () {
getObjectByJs.removeAttribute('onclick');
}
虽然"onclick"属性已被删除,但是对应的onclick调用的js代码还是会执行!
解决方案:
//页面加载完毕使用jQuery的$(function(){});
$(function() {
getObjectByJq.removeAttr('onclick');
}
e.js获取标签属性详细介绍
案例:
CreateTime--2016年10月16日16:35:34
<iframe id='importJsp' width='700' height='500' frameborder='0' src='test.html'></iframe>
1.取值:获取iframe标签的src属性
//方法一
//自定义属性
var iframeSrcAttr = document.getElementById("importJsp").getAttribute("src");
获取得到的值是:test.html
//方法二
var iframeSrcAttr = document.getElementById("importJsp").src;
获取得到的值是:http://127.0.0.1:8020/demo/test.html
//方法三
var iframeSrcAttr = document.getElementById("importJsp").attributes["src"].value;
获取得到的值是:test.html
需要特别注意的地方:
当获取的标签属性具有路径性质的,一定要注意,需求:
通过"."操作符,获取的值前面带有绝对路径
2.改变已存在属性(src)的属性值
//方法一
document.getElementById("importJsp").setAttribute("src","#");
//iframe标签的src属性值已更改为"#"
//方法二
document.getElementById("importJsp").attributes["src"].value="#";
//下面内容与js无关
但是,更改src没有用,只能将iframe标签全部替换掉才行
<iframe id='importJsp' width='700' height='500' frameborder='0' src='#'></iframe>
7.input,select,textarea框取值及赋值
| 操作 | javascript | jQuery |
| 取值 | getObjectByJs.value; | getObjectByJq.val(); |
| 赋值 | getObjectByJs.value = "赋值"; | getObjectByJq.val('赋值'); |
8.class属性
| 操作 | javascript | jQuery |
| 取值 | getObjectByJs.className; | getObjectByJq.attr('class'); |
| 赋值 | getObjectByJs.className = "color1"; | getObjectByJq.attr('class','color1'); |
| 新增class属性值 | getObjectByJs.className += ' ' +'color2';//注意空格 | getObjectByJq.addClass('color2'); |
| 移除class的某个属性值 | Null(没有对应的方法) | getObjectByJq.removeClass('color1'); |
| 移除class属性 | getObjectByJs.removeAttribute('class'); | getObjectByJq.removeAttr('class'); |
注:
a.jQuery的toggleClass('className',paramBoolean)方法
元素中class属性的值,指定class类,如果存在则删除、如果不存在则添加;
第二个参数如果为true,则只进行删除操作;
如果设为false,只进行删除操作。
b.js-自定义方法文章中,已对增加和删除class类做了封装
9.选中文本内容
| 操作 | javascript | jQuery |
| 选中文本内容 | getObjectByJs.select(); | getObjectByJq.select(); |
注:选中文本内容js和jquery都是调用select()方法
9.焦点事件
| 操作 | javascript | jQuery |
| 获取焦点 | getObjectByJs.focus(); | getObjectByJq.focus(); |
| 绑定聚焦事件 | getObjectByJs.onfocus = function() {}; | getObjectByJq.focus(function() {}); |
| 失去焦点 | getObjectByJs.blur(); | getObjectByJq.blur(); |
| 绑定失去焦点事件 | getObjectByJs.onfocus = function() {} | getObjectByJq.focus(function() {}); |
注:获取焦点js和jquery都是调用focus()方法,失去焦点都调用blur()方法。
UpdateTime--2017年2月16日11:45:41
11.点击事件
<input id="bb" type="text" onclick="alert(4)"/>
| 操作 | javascript | jQuery |
| 点击事件 | onclick | click() |
| 触发点击事件 | document.getElementById("bb").onclick(); | document.getElementById("bb").click(); |
| 绑定触发点击事件 | document.getElementById("bb").onclick = function() {}; | document.getElementById("bb").click(function() {}); |
UpdateTime--2017年5月11日15:17:28
12.获取节点
| 操作 | javascript | jQuery |
| 获取指定元素的第一个节点 | NULL | :first |
| 获取指定元素的最后一个节点 | NULL | :last |
| 获取第一个子节点 | firstChild/firstElementChild及children[0] | children[0]或children(':first')或children().eq(0)或children(':eq(0)') |
| 获取最后一个子节点 | lastChild/lastElementChild及children[最后一个子元素下标] | children(最后一个子元素下标) |
| 获取所有的子节点 | children | children() |
| 获取指定的子节点 | children[元素下标] | children(元素下标)或children().eq(元素下标)或使用">",$('parent > child') |
| 获取所有的子孙(后代)节点 | NULL | 使用"空格",$('parent child') |
| 获取父节点 | parentNode | parent() |
| 获取所有的父节点 | NULL | parents() |
| 获取上一个兄弟节点 | previousElementSibling | prev() |
| 获取之前所有的兄弟节点 | NULL | prevAll() |
| 获取下一个兄弟节点 | nextElementSibling | next()或使用"+",$('pre + nextbrother') |
| 获取之后所有兄弟节点 | NULL | nextAll()或使用"~",$('pre ~ brother') |
| 获取所有兄弟节点 | NULL | siblings() |
| 获取所有index>No的兄弟节点 | NULL | :gt(No) |
| 获取所有index<No的兄弟节点 | NULL | :lt(No) |
| 获取index=No的兄弟节点 | NULL | :eq(No) |
| 查找子节点 | NULL | find() |
注意:1.用javascript获取第一个及最后一个子节点,建议使用children[元素下标]来实现,使用firstElementChild/firstChild存在兼容性问题,
具体解释转至:http://www.cnblogs.com/jelly7723/p/4871849.html
2.previousElementSibling及nextElementSibling同样在IE9以下不支持,建议使用jQuery来实现;
3.jquery选择器空格与大于号、加号与波浪号的区别更加详细的介绍见对应的文章。
UpdateTime--2017年5月28日12:41:20
13.添加、移除节点
| 操作 | javascript | jQuery |
| 为指定元素最后面添加一个子节点 | appendChild() |
通过操作父节点来实现添加子节点使用append(); 通过操作子节点拼接到父节点使用appendTo()。 |
| 为指定元素最前面添加一个子节点 | insertBefore(目标对象,插入位置) |
通过操作父节点来实现添加子节点使用prepend(); 通过操作子节点拼接到父节点使用prependTo()。 |
| 为指定元素后面添加一个兄弟节点 | 无 |
通过操作已知节点来实现添加兄弟节点使用after(); 通过操作兄弟节点拼接到已知节点使用insertAfter()。 |
| 为指定元素前面添加一个兄弟节点 | insertBefore(目标对象,插入位置) |
通过操作已知节点来实现添加兄弟节点使用before(); 通过操作兄弟节点拼接到已知节点使用insertBefore()。 |
| 移除指定节点 | NULL | remove() |
| 清空所有的子节点 | NULL | empty() |
| 克隆节点 | NULL | clone() |
UpdateTime--2017年6月30日17:35:57
注意:appendTo(),clone()用法见文章:jquery选择器空格与大于号、加号与波浪号的区别
UpdateTime--2017年11月6日17:09:42
其他方法的用法,见文章:appendChild append insertBefore prepend
14.重置form表单
| 操作 | javascript | jQuery |
| 重置form表单 | reset() | NULL |
说明:具体用法见文章-js重置form表单。
UpdateTime--2017年7月13日08:38:18
15.获取数组长度
| 操作 | javascript | jQuery |
| 获取数组长度 | .length 属性 | .length 属性 |
UpdateTime--2017年7月20日10:04:19
16.对字符串去除左右空格
| 操作 | javascript | jQuery |
| 去除字符串左右空格 | NULL,自定义trim()方法 | $.trim(字符串) |
17.判断父元素中是否包含指定元素
| 操作 | javascript | jQuery |
| 判断父元素中是否包含指定元素 | NULL,自定义contains()方法 | $.contains(parentElement元素,childElement元素) |
UpdateTime--2017年7月21日09:15:36
18.选取包含指定字符串的元素
| 操作 | javascript | jQuery |
| 选取包含指定字符串的元素 | NULL | $(":contains(text)"),经常与其他元素/选择器一起使用,来选择指定的组中包含指定文本的元素 |
UpdateTime--2017年8月1日09:45:26
19.将json字符串转换成JSON对象
| 操作 | javascript | jQuery |
| 将json字符串转换成JSON对象 | eval('(' + jsonStr + ')') | $.parseJSON(jsonStr) |
注意:必须是标准格式的json字符串,格式介绍见文章:javascript JSON
UpdateTime--2017年11月7日17:04:28
20.判断JSON对象是否为空
| 操作 | javascript | jQuery |
| 判断JSON对象是否为空 | NULL | $.isEmptyObject(param) |
21.判断是否是数组
| 操作 | javascript | jQuery |
| 判断是否是数组 | NULL | $.isArray(param) |
UpdateTime--2018年3月23日17:04:21
22.监听窗口大小改变
| 操作 | javascript | jQuery |
| 监听窗口大小改变事件 | window.onresize=function(){} | $(window).resize(function(){}); |
2018/12/21
23.获取指定元素内的内容+本元素
| 操作 | javascript | jQuery |
| 获取本元素及标签内元素 | outerHTML | 没有 |
js与jQuery方法对比的更多相关文章
- 绑定弹窗事件最好的方法,原生JS和JQuery方法
使用jQuery ui = { $close: $('.close') , $pop: $('.pop') , $topopBtn: $('.topop-btn') , $popbtnArea: $( ...
- 字符串去空格 java , js和Jquery 方法
1. java方式 String.trim(); 2.js方式 function Trim(str) { return str.replace(/(^\s*)|(\s*$)/g, "&qu ...
- js与Jquery的对比
// document.getElementById("divCommit").style.display="none";// document.g ...
- js与jQuery实现方式对比汇总
CreateTime--2016年12月16日09:11:23Author:Marydonjs与jQuery实现方式对比汇总 <div id="ListContainer" ...
- ecshop transport.js 和 jquery 冲突解决办法
您提供一个简单的解决transport.js 和 jquery 方法: 在 page_header.lbi 库文件中加入如下代码,注意操作顺序: 1.先导入transport.js 文件 {inse ...
- 先说一下JS的获取方法,其要比JQUERY的方法麻烦很多,后面以JQUERY的方法作对比。
先说一下JS的获取方法,其要比JQUERY的方法麻烦很多,后面以JQUERY的方法作对比. JS的方法会比JQUERY麻烦很多,主要则是因为FF浏览器,FF浏览器会把你的换行也当最DOM元素 复制代码 ...
- jQuery---jq基础了解(语法,特性),JQ和JS的区别对比,JQ和JS相互转换,Jquery的选择器(基础选择器,层级选择器,属性选择器),Jquery的筛选器(基本筛选器,表单筛选器),Jquery筛选方法
jQuery---jq基础了解(语法,特性),JQ和JS的区别对比,JQ和JS相互转换,Jquery的选择器(基础选择器,层级选择器,属性选择器),Jquery的筛选器(基本筛选器,表单筛选器),Jq ...
- 转载:js和jquery获取父级元素、子级元素、兄弟元素的方法
转载网址: 先说一下JS的获取方法,其要比JQUERY的方法麻烦很多,后面以JQUERY的方法作对比. JS的方法会比JQUERY麻烦很多,主要则是因为FF浏览器,FF浏览器会把你的换行也当最DOM元 ...
- js和jquery获取父级元素、子级元素、兄弟元素的方法{转}
先说一下JS的获取方法,其要比JQUERY的方法麻烦很多,后面以JQUERY的方法作对比 JS的方法会比JQUERY麻烦很多,主要则是因为FF浏览器,FF浏览器会把你的换行也当成DOM元素 原生的 ...
随机推荐
- Highcharts构建分组分类坐标轴
Highcharts构建分组分类坐标轴 分组分类坐标轴是将坐标轴的类别标签进行进一步分组,从而形成双层.多层结构. 这样更利于数据分组展现. 实现分组分类坐标轴须要借助第三方插件Grouped-Cat ...
- OpenERP实施记录(14):收款处理
本文是<OpenERP实施记录>系列文章的一部分. 1. 在前面的文章中,销售订单确认时自动生成了客户发票,可以在 会计 > 客户 > 客户发票 查询,状态为"草稿& ...
- golang(一)-for 循环
golang 的循环控制中大多还是和java 很相似的 , 不过golang只有一种循环 就是for循环: for 有三个循环控制关键字 : break . continue . goto 其中 ...
- .Net线程问题解答
基础篇 怎样创建一个线程 受托管的线程与 Windows线程 前台线程与后台线程 名为BeginXXX和EndXXX的方法是做什么用的 异步和多线程有什么关联 WinForm多线程编程篇 我的多线程W ...
- iOS: xcode打包上传iTunes失败,iTunes Store operation failed,this action can not complete .try again
通过xcode点击“upload to app store”上传到itunes,结果一直提示“itunes store operation failed” 原因:网速的问题,我之前也遇到过,网速好的时 ...
- OpenCV学习(9) 分水岭算法(3)
本教程我学习一下opencv中分水岭算法的具体实现方式. 原始图像和Mark图像,它们的大小都是32*32,分水岭算法的结果是得到两个连通域的轮廓图. 原始图像:(原始图像必须是3通道图像) Mark ...
- poj2142 The Balance 扩展欧几里德的应用 稍微还是有点难度的
题目意思一开始没理解,原来是 给你重为a,b,的砝码 求测出 重量为d的砝码,a,b砝码可以无限量使用 开始时我列出来三个方程 : a*x+b*y=d; a*x-b*y=d; b*y-ax=d; 傻眼 ...
- python爬虫——利用BeautifulSoup4爬取糗事百科的段子
import requests from bs4 import BeautifulSoup as bs #获取单个页面的源代码网页 def gethtml(pagenum): url = 'http: ...
- JavaScript获得页面区域大小的代码
var Client = { viewportWidth: function() { return self.innerWidth || (document.documentE ...
- TextView文字横向自己主动滚动
效果截图: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMjI4Nj ...