作者:嘉心面包-1908 | 来源:互联网 | 2023-09-13 12:21
毫无疑问,JQuery是一款异常优异的JavaScript库,它让我们开辟项目变得越发便利轻易。不过,当你预备在一个项目(特别是挪动项目)中运用JQuery时,你真的该好好思索一下
毫无疑问,JQuery是一款异常优异的Javascript库,它让我们开辟项目变得越发便利轻易。
不过,当你预备在一个项目(特别是挪动项目)中运用JQuery时,你真的该好好思索一下,你会用到JQuery的哪些功用,是不是真的须要jQuery。由于跟着Javascript的不停改良进化,如今它内置的功用已异常壮大,在很大程度上,已能够完成之前须要在JQuery中才完成的手艺(假如你的项目须要在IE8之前的浏览器中运用,发起照样运用JQuery,如许能够省却许多兼容性问题)。
下面将列出一些能够运用Javascript来完成JQuery功用的代码:
1、查找搜刮选择器
按ID查找:
$('#test') => document.getElementById('test');
按class类名查找:
$('.test') => document.getElementsByClassName('test')
按标署名查找:
$('div') => document.getElementsByTagName('div')
固然,你也能够一致查找:
$('#test') document.querySelector('#test') $('#test div') => document.querySelectorAll('#test div') $('#test').find('span') => document.querySelectorAll('#test span');
猎取单个元素:
$('#test div').eq(0)[0] => document.querySelectorAll('#test div')[0]
猎取HTML、head、body:
$('html') => document.documentElement $('head') => document.head $('body') => document.body
推断节点是不是存在
$('#test').length > 0 => document.getElementById('test') !== null $('div').length > 0 => document.querySelectorAll('div').length > 0
遍历节点:
$('div').each(function(i, elem) {}) function forEach(elems, callback) { if([].forEach) { [].forEach.call(elems, callback); } else { for(var i = 0; i callback(elems[i], i); } } } var div = document.querySelectorAll('div'); forEach(div, function(elem, i){ });
清空节点
$('#test').empty() => document.getElementById('test').innerHTML = '';
节点比较
$('div').is($('#test')) => document.querySelector('div') === document.getElementById('test')
2、猎取/设置内容(值)
猎取/设置元素内的内容
$('div').html() => document.querySelecotr('div').innerHTML $('div').text() => var t = document.querySelector('div'); t.textContent || t.innerText; $('div').html('abc '); => document.querySelecotr('div').innerHTML = 'abc '; $('div;).text('abc') => document.querySelecotr('div').textCOntent= 'abc'
猎取包括元素自身的内容
$('').append($('#test').clone()).html() => document.getElementById('test').outerHTML
$('
').append($('#test').clone()).html('
abc ') => document.getElementById('test').outerHTML = '
abc '
猎取表单值
$('input').val() => document.querySelector('input').value $('input').val('abc') => document.querySelector('input').value = 'abc'
3、class类名操纵
类名新增
$('#test').addClass('a') function addClass(elem, className) { if(elem.classList) { elem.classList.add(className); } eles { elem.className += ' ' + className; } } addClass(document.getElementById('test'), 'a');
类名删除
$('#test').removeClass('a'); function removeClass(elem, className) { if(elem.classList) { elem.classList.remove(className); } else { elem.className = elem.className.replace(new RegExp('(^|\\b)' + className.split(' ').join('|') + '(\\b|$)', 'gi'), ' '); } } removeClass(document.getElementById('test'), 'a');
类名包括:
$('#test').hasClass('a') function hasClass(elem, className) { if(elem.classList) { return elem.classList.contains(className); } else { return new RegExp('(^| )' + className + '( |$)', 'gi').test(elem.className); } } hasClass(document.getElementById('test'), 'a');
4、节点操纵
建立节点
$('') => document.createElement('div')
复制节点:
$('div').clone() => document.querySelector('div').cloneNode(true)
插进去节点:
$('div').append(' ') var span = document.createElement('span'); document.querySelector('div').appendChild(span);
在指定节点之前插进去新的子节点
$('').insertBefore('#test'); var t = document.getElementById('test'); var span = document.createElement('span'); t.parentNode.insertBefore(span, t); /*更简朴的*/ t.insertAdjacentHTML('beforeBegin', ' ');
在指定节点后插进去新的子节点:
$('').insertAfter('#test') function insertAfter(elem, newNode){ if(elem.nextElementSibling) { elem.parentNode.insertBefore(newNode, elem.nextElementSibling); } else { elem.parentNode.appendChild(newNode); } } var t = document.getElementById('test'); var span = document.createElement('span'); insertAfter(t, span); /*更简朴的*/ t.insertAdjacentHTML('afterEnd', ' ');
猎取父节点
$('#test').parent() => document.getElementById('test').parentNode
删除节点
$('#test').remove() var t = document.getElementById('test'); t.parentNode.removeChild(t);
猎取Element子节点
$('#test').children() function children(elem) { if(elem.children) { return elem.children; } else { var children = []; for (var i = el.children.length; i--;) { if (el.children[i].nodeType != 8) children.unshift(el.children[i]); } return children; } } children(document.getElementById('test'));
猎取下一个兄弟节点:
$('#test').next() function nextElementSibling(elem) { if(elem.nextElementSibling) { return elem.nextElementSibling; } else { do { elem = elem.nextSibling; } while ( elem && elem.nodeType !== 1 ); return elem; } } nextElementSibling(document.getElementById('test'));
猎取上一个兄弟节点:
$('#test').prev() function previousElementSibling(elem) { if(elem.previousElementSibling) { return elem.previousElementSibling; } else { do { elem = elem.previousSibling; } while ( elem && elem.nodeType !== 1 ); return elem; } } previousElementSibling(document.getElementById('test'));
5、属性操纵
猎取属性
$('#test').attr('class') => document.getElementById('test').getAttribute('class')
删除属性
$('#test').removeAttr('class') => document.getElementById('test').removeAttribute('class')
设置属性
$('#test').attr('class', 'abc') => document.getElementById('test').setAttribute('class', 'abc');
6、CSS款式操纵
设置款式
$('#test').css('height', '10px'); => document.getElementById('test').style.height = '10px';
猎取款式
$('#test').css('height') var getStyle = function(dom, attr) { return dom.currentStyle ? dom.currentStyle[attr] : getComputedStyle(dom, false)[attr]; }; getStyle(document.getElementById('test'), 'height');
猎取伪类的CSS款式
window.getComputedStyle(el , ":after")[attrName];
注:IE是不支持猎取伪类的
7、字符串操纵
去除空格
$.trim(' abc ') function trim(str){ if(str.trim) { return str.trim(); } else { return str.replace(/^\s+|\s+$/g, ''); } } trim(' abc ');
8、JSON操纵
JSON序列化
$.stringify({name: "TG"}) => JSON.stringify({name: "TG"})
JSON反序列化
$.parseJSON('{ "name": "TG" }') => JSON.parse('{ "name": "TG" }')
原文链接:不要过分依靠JQuery(一)
若有毛病,迎接斧正!若有更好发起,迎接留言!
推荐阅读
前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ...
[详细]
蜡笔小新 2023-12-13 09:34:59
本文详细介绍了如何使用MySQL来显示SQL语句的执行时间,并通过MySQL Query Profiler获取CPU和内存使用量以及系统锁和表锁的时间。同时介绍了效能分析的三种方法:瓶颈分析、工作负载分析和基于比率的分析。 ...
[详细]
蜡笔小新 2023-12-12 16:16:42
Ihavethefollowingonhtml我在html上有以下内容<html><head><scriptsrc..3003_Tes ...
[详细]
蜡笔小新 2023-12-12 15:59:36
PHP中的curl_multi系列函数可以实现同时请求多个URL来实现并发,而不是像普通curl函数那样请求后会阻塞,直到结果返回才进行下一个请求。因此在批量请求URL时可通过curl_multi系列函数提升程序的运行效率。curl普通请求$startT ...
[详细]
蜡笔小新 2023-10-17 19:36:06
巧用arguments在Javascript的函数中有个名为arguments的类数组对象。它看起来是那么的诡异而且名不经传,但众多的Javascript库都使用着它强大的功能。所 ...
[详细]
蜡笔小新 2023-10-17 19:06:27
我试图提出一些自定义大纲,以达到一些Web可访问性建议.但我不能用Firefox制作.这就是它在Chrome上的外观:而那个图标实际上是一个锚点.在Firefox上,它只概述了整个 ...
[详细]
蜡笔小新 2023-12-14 10:20:38
本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ...
[详细]
蜡笔小新 2023-12-13 17:32:41
本文详细介绍了在ASP.NET中获取插入记录的ID的几种方法,包括使用SCOPE_IDENTITY()和IDENT_CURRENT()函数,以及通过ExecuteReader方法执行SQL语句获取ID的步骤。同时,还提供了使用这些方法的示例代码和注意事项。对于需要获取表中最后一个插入操作所产生的ID或马上使用刚插入的新记录ID的开发者来说,本文提供了一些有用的技巧和建议。 ...
[详细]
蜡笔小新 2023-12-13 17:03:18
本文介绍了在小程序wxs中进行时间格式化操作的问题,并提供了解决方法。同时还介绍了格式化时间和date时间的互相转换的方法。 ...
[详细]
蜡笔小新 2023-12-11 12:21:25
Ihaveaworkfolderdirectory.我有一个工作文件夹目录。holderDir.glob(*)>holder[ProjectOne, ...
[详细]
蜡笔小新 2023-12-10 12:41:53
为什么80%的码农都做不了架构师?JQuery1.2后getJSON方法支持跨域读取json数据,原理是利用一个叫做jsonp的概念。当然 ...
[详细]
蜡笔小新 2023-12-09 18:24:55
本文总结了在编写JS代码时,不同浏览器间的兼容性差异,并提供了相应的解决方法。其中包括阻止默认事件的代码示例和猎取兄弟节点的函数。这些方法可以帮助开发者在不同浏览器上实现一致的功能。 ...
[详细]
蜡笔小新 2023-12-09 17:31:06
Python中的PyInputPlus模块原文:https ...
[详细]
蜡笔小新 2023-10-17 20:32:43
1简介本文结合数字信号处理课程和Matlab程序设计课程的相关知识,给出了基于Matlab的音乐播放器的总体设计方案,介绍了播放器主要模块的功能,设计与实现方法.我们将该设 ...
[详细]
蜡笔小新 2023-10-17 20:28:05
现在比较流行使用静态网站生成器来搭建网站,博客产品着陆页微信转发页面等。但每次都需要对服务器进行配置,也是一个重复但繁琐的工作。使用DockerWeb,只需5分钟就能搭建一个基于D ...
[详细]
蜡笔小新 2023-10-17 17:54:38