比较jQuery与JavaScript的不同功能实现

CSS选择器

元素选择

// jQuery
$("li").css("color", "red");
// JavaScript
document.querySelectorAll('li').forEach(el => {
el.style.color = 'red';
});

ID选择

// jQuery
$('li#first').css('color', 'red');
// JavaScript
document.querySelector('li#first').style.color = 'red';

类选择

// jQuery
$('li.first').css('color', 'red');
// JavaScript
document.querySelectorAll('li.first').foreach(el => {
el.style.color = 'red';
});

子元素选择

// jQuery
$('.first strong').css('color', 'red');
// JavaScript
document.querySelectorAll('.first strong').forEach(el => {
el.style.color = 'red';
});

通配符选择

$('li *').css('color', 'red');
// JavaScript
document.querySelectorAll('li *').forEach(el => {
el.style.color = 'red';
});

分组选择

// jQuery
$('#first, #third').css('color', 'red');
// JavaScript
document.querySelectorAll('#first, #third').forEach(el => {
el.style.color = 'red';
});

伪类选择

// jQuery
$('li:first-child').css('color', 'red');
// JavaScript
document.querySelectorAll('li:first-child').forEach(el => {
el.style.color = 'red';
});

匹配选择

// jQuery
$('#second ~ li').css('color', 'red');
// JavaScript
document.querySelectorAll('#second ~ li').forEach(el => {
el.style.color = 'red';
});

属性选择

// jQuery
$('[id], [class="first"]').css('color', 'red');
// [attribute!="..."] -> 选择指定属性不等于这个值的元素
// [attribute^="..."] -> 选择指定属性是以给定字符串开始的元素
// [attribute$="..."] -> 选择指定属性是以给定字符串结尾的元素
// [attribute*="..."] -> 选择指定属性具有包含给定字符串的元素
// [attribute="..."][attribute="..."] -> 设置多个指定属性
// JavaScript
document.querySelectorAll('[id], [class="first"]').forEach(el => {
el.style.color = 'red';
});

jQuery自带选择

// jQuery
$('li:first, li:last').css('color', 'red');
$('li:even, li:odd').css('color', 'red');
$('li:lt(2)').css('color', 'red');
$('li:eq(2)').css('color', 'red');
$('li:gt(2)').css('color', 'red');
$(':header').css('color', 'red');
$('li:contains("テキスト")').css('color', 'red');
$('li:has(strong)').css('color', 'red');
$('li:parent').css('color', 'red');

HTML/CSS操作

修改文本

<p id="first">修改前</p>

// jQuery
$('p#first').text('Hello Rizu');
// JavaScript
document.querySelector('#first').textContent = 'Hello Rizu'

获取文本

<p id="first">获取的字符串</p>
<p id="second">修改前</p> $('p#second').text($('p#first').text());
// JavaScript
var text = document.querySelector('#first').textContent;
document.querySelector('#second').textContent = text ;

修改html

<p id="first">修改前</p>

// jQuery
$('p#first').html('<strong>Hello Rizu</strong>');
// JavaScript
document.querySelector('#first').innerHTML = '<strong>Hello Rizu</strong>';

获取html

<p id="first"><strong>获取的HTML</strong></p>
<p id="second">变更前</p> // jQuery
$('p#second').html($('p#first').html());
// JavaScript
var html = document.querySelector('#first').innerHTML;
document.querySelector('#second').innerHTML = html;

向html元素中的头部、尾部插入

<p id="first">Hello Rizu</p>

// jQuery
$('p#first').prepend('<strong>在头部插入</strong>');
$('p#first').append('<strong>在尾部插入</strong>');
// JavaScript
var target = document.querySelector('#first');
var a = document.createElement('strong');
a.textContent = '在头部插入';
var b = document.createElement('strong');
b.textContent = '在尾部插入';
target.insertBefore(a, target.firstChild);
target.appendChild(b);

在html元素的前、后插入

<p id="first">Hello Rizu</p>

// jQuery
$('p#first').before('<h1>前面插入</h1>');
$('p#first').after('<h1>后面插入</h1>');
// JavaScript
var before = document.createElement('h1');
var after = document.createElement('h1');
before.textContent = '前面插入';
after.textContent = '后面插入';
var target = document.querySelector('#first');
var parent = target.parentNode;
parent.insertBefore(before, target);
parent.appendChild(after);

向html元素内的头部、尾部移动

<p id="first">Hello Rizu</p>
<strong id="prepend">向头部移动</strong>
<strong id="append">向尾部移动</strong> // jQuery
$('strong#prepend').prependTo('p');
$('strong#append').appendTo('p');
// JavaScript
var prepend = document.querySelector('#prepend');
var append = document.querySelector('#append');
var target = document.querySelector('#first');
target.insertBefore(prepend, target.firstChild);
target.appendChild(append);

在html元素的前、后移动

<strong id="after">向后移动</strong>
<p id="first">Hello Rizu</p>
<strong id="before">向前移动</strong> // jQuery
$('strong#before').insertBefore('p');
$('strong#after').insertAfter('p');
// JavaScript
var before = document.querySelector('#before');
var after = document.querySelector('#after');
var target = document.querySelector('#first');
var parent = target.parentNode;
parent.insertBefore(before, target);
parent.appendChild(after);

使用指定元素包裹各元素

<p id="first">Hello Rizu</p>
<p id="second">Hello yrq</p> // jQuery
$('p').wrap('<h1></h1>');
// JavaScript
var target = document.querySelector('#first');
var parent = target.parentNode;
document.querySelectorAll('p').forEach((value, index) => {
var wrap = document.createElement('h1');
wrap.innerHTML = value.outerHTML;
if (index === 0) { parent.innerHTML = '';}
parent.appendChild(wrap);
});

将所有元素包裹在一个元素中

<div>
<p id="first">Hello Rizu</p>
<p id="second">Hello yrq</p>
</div> // jQuery
$('p').wrapAll('<h1></h1>');
// JavaScript
var target = document.querySelector('div');
var p = target.innerHTML;
var h1 = document.createElement('h1');
h1.innerHTML = p;
target.innerHTML = '';
target.innerHTML = h1.outerHTML;

使用指定元素包裹各元素的子元素

<div>
<p id="first">Hello Rizu</p>
<p id="second">Hello yrq</p>
</div> // jQuery
$('p').wrapInner('<strong></strong');
// JavaScript
var p = document.querySelectorAll('p');
p.forEach((value, index) => {
var target = value.textContent;
var strong = document.createElement('strong');
strong.textContent = target;
p[index].innerHTML = strong.outerHTML;
});

去除父元素

<strong><p id="first">Hello Rizu</p></strong>

// jQuery
$('p').unwrap();
// JavaScript
var target = document.querySelector('#first');
var parent = target.parentNode;
var grand = parent.parentNode;
grand.innerHTML = target.outerHTML;

使用其他元素替换指定元素

<p id="first">Hello Rizu</p>

// jQuery
$('p').replaceWith('<h1>替换后</h1>');
// JavaScript
document.querySelector('#first').outerHTML = '<h1>替换后</h1>';

删除元素

<p id="first"><strong>删除的元素</strong>Hello Rizu</p>

// jQuery
$('p strong').remove();
// JavaScript
var target = document.querySelector('#first');
var nest = document.querySelector('#first strong');
target.removeChild(nest);

获取与修改属性值

<a href="http://yrq110.me/">blog</a>

// jQuery
$('a').attr('href', "http://developer.mozilla.org ");
$('a').text($('a').attr('href'));
// JavaScript
document.querySelector('a').setAttribute('href', "http://developer.mozilla.org ");
var target = document.querySelector('a');
target.textContent = target.getAttribute('href');

删除属性值

<a href="http://yrq110.me/" target="_blank">blog</a>

// jQuery
$('a').removeAttr('target');
// JavaScript
document.querySelector('a').removeAttribute('target');

class值的添加与删除

<p>Hello Rizu</p>

// jQuery
$('p').addClass('red');
$('p').removeClass('red');
// JavaScript
var target = document.querySelector('p');
target.classList.add('red');
target.classList.remove('red');

设置多个CSS属性值(CSS in JS)

<p>Hello Rizu</p>

// jQuery
$('p').css({
'color': 'red',
'border': '1px solid black'
});
// JavaScript
document.querySelector('p').style.color = 'red';
document.querySelector('p').style.border = '1px solid black';

点击事件

<p>Hello Rizu</p>

// jQuery
$('p').click(function() {
$(this).css('color', 'red');
});
// JavaScript
document.addEventListener('click', () => {
document.querySelector('p').style.color = 'red';
}, false);

jQuery->JavaScript一览表的更多相关文章

  1. [JS]jQuery,javascript获得网页的高度和宽度

    [JS]jQuery,javascript获得网页的高度和宽度网页可见区域宽: document.body.clientWidth 网页可见区域高: document.body.clientHeigh ...

  2. jQuery UI 是建立在 jQuery JavaScript 库上的一组用户界面交互、特效、小部件及主题

    jQuery UI 是建立在 jQuery JavaScript 库上的一组用户界面交互.特效.小部件及主题.无论您是创建高度交互的 Web 应用程序还是仅仅向窗体控件添加一个日期选择器,jQuery ...

  3. Visual Studio 2012设置Jquery/Javascript智能提示

    Visual Studio 2012设置Jquery/Javascript智能提示 在Visual Studio 2008 Visual Studio 2010中微软已经开始支持jquery/java ...

  4. [转]Tetris(俄罗斯方块) in jQuery/JavaScript!

    本文转自:http://pwwang.com/2009/10/25/tetris-in-jquery-javascript/ All in jQuery/JavaScript + HTML! Demo ...

  5. jQuery JavaScript Library v3.2.1

    /*! * jQuery JavaScript Library v3.2.1 * https://jquery.com/ * * Includes Sizzle.js * https://sizzle ...

  6. jQuery/javascript实现全选全不选

    <html> <head> <meta charset="utf-8"> <title>Checkbox的练习</title& ...

  7. jQuery/javascript实现网页注册的表单验证

    <html> <head> <meta charset="utf-8"> <title>注册表单验证</title> & ...

  8. jQuery/javascript实现简单网页计算器

    <html> <head> <meta charset="utf-8"> <title>jQuery实现</title> ...

  9. JQuery & Javascript

    Jquery 是一个优秀的javascript框架,是轻量级的js库 jQuery简化了javascript 编程 jQuery很容易学习

  10. jquery,javascript -设置某一ul下的li下的 a的属性

    //javascriptvar ul = document.getElementById('ul); var as = ul.getElementsByTagName('a'); for(var i ...

随机推荐

  1. php正则表达式,在抓取内容进行匹配的时候表现不稳定

    最近做了一个 抓取内容的程序,使用php的正则表达式对抓取的内容进行匹配,当进行大量匹配运算的时候,发现偶尔会出现匹配失败的情况.检查不出任何原因. 匹配失败导致匹配结果为空,最终导致写入数据库失败. ...

  2. Python中的输出

    1.Python的输出语句 Python输出语句是print,但是python2.x与3.x又有点区别.python2.x输出 print "xxx"能成功执行,而3.x不行,所以 ...

  3. 如何自学Python?

    ​关于如何自学Python,我也是有话说的.来看看? Python具有丰富和强大的类库,常被称为胶水语言.而且语法简洁而清晰,功能强大且简单易学,因而得到了广泛应用和支持.它特别适合专家使用,也非常适 ...

  4. 深入探讨List<>中的一个姿势。

    List<>是c#中很常见的一种集合形式,近期在阅读c#源码时,发现了一个很有意思的定义: [DebuggerTypeProxy(typeof(Mscorlib_CollectionDeb ...

  5. C#利用UdpClient发送广播消息

    首先写个接受消息的客户端.这里偷了点懒,new UdpClient(11000)就是用Udp方式侦听11000端口,侦听任何发送到11000端口的消息都会接收到. 代码 : ); Byte[] sen ...

  6. API设计相关

    来自HeroKu的HTTP API 设计指南 http://get.jobdeer.com/343.get https://github.com/interagent/http-api-design ...

  7. 基于BroadReceiver实现获取短信内容

    我朋友拜托我做一个能实现向指定号码发短信获取动态密码的一个小app,中间用到了基于监听系统通知的BroadReceiver 来实现获取有新短信并且获取新短信的内容.下面就是这个小app的实现监听部分的 ...

  8. 【爬虫】利用Scrapy抓取京东商品、豆瓣电影、技术问题

    1.scrapy基本了解 Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架.可以应用在包括数据挖掘, 信息处理或存储历史数据等一系列的程序中.其最初是为了页面抓取(更确切来说,网络抓 ...

  9. 《Metasploit魔鬼训练营》第四章(下)

    p163 XSSF 默认kali 2.0中没有xssf,先下载:https://code.google.com/archive/p/xssf/downloads 将下载下来的zip文件解压,将其中的d ...

  10. 【框架学习与探究之依赖注入--Autofac】

    声明 本文欢迎转载,原文地址:http://www.cnblogs.com/DjlNet/p/7603642.html 序 同样的又是一个双11如期而至,淘宝/天猫实时数据显示,开场3分钟总交易额突破 ...