专栏首页bamboo前端学习记录jquery和原生dom对象的转换&常用函数方法

jquery和原生dom对象的转换&常用函数方法

一、jquery和原生dom对象的转换

1、新建jquery对象和长度

var $p= $('p')新建一个jquery对象,一般在新建jquery对象的时候,加上一个$,以便好认。

返回的是一个类似数组对象,jquery可以通过$p[0]下标来获取对应的对象,也可以获取$p 的长度

页面上没有id=abc的元素,选中原生js对象时,返回的是null,我们可以知道选中这个元素不存在。但选中这个jquery对象,返回的还是类数组,我们分辨不了,我们只能通过length来分辨jquery对象是否不存在

2、jquery转换为dom对象

jquery可以通过$p[0]下标来转换为对应的dom对象

如果我们只是想要获取对应的子jquery对象,不想转换成dom对象,就直接用$('#p1').eq(2) 得到的还是jquery对象

get方法获取指定index的DOM对象,也就是我们说的jQuery对象转DOM对象。get()不写参数把所有对象转为DOM对象返回

3、dom对象转换成jquery对象

dom对象转换成jquery对象,只需要加上一个#号

二、jquery对象的方法

1、.each( function(index, Element) )

//each的参数顺序和js的参数顺序相反 遍历一个jQuery对象,为每个匹配元素执行一个函数

$('li').each(function(ind,e){
console.log(('ind+':'+$(e).text()') } //text方法是取出jquery对象的值,

jQuery对象里面回调函数,一般来说对应的元素都是原生dom,要执行jQuery的text方法需要加$转换成jquery对象

2、jQuery.each( collection, callback(indexInArray, valueOfElement) )

在jquery中有一种用法\$.each(),其中$==jQuery对象

each通用的迭代函数,它可以用来无缝迭代对象和数组。数组和类似数组的对象通过一个长度属性(如一个函数的参数对象)来迭代数字索引,从0到length - 1。其他对象通过其属性名进行迭代 注意,函数对应的是element的值,而不是element本身

var obj = {
  "flammable": "inflammable",
  "duh": "no duh"
};
$.each( obj, function( key, value ) {
  alert( key + ": " + value );
});

3、.map( callback(index, domElement) )

通过一个函数匹配当前集合中的每个元素,产生一个包含新的jQuery对象

$('div').map(function(i, ele){
    return this.id;
});
$('.child').map(function(index,e){
return  $(e).text()})

4、jQuery.extend([deep,] target [, object1 ] [, objectN ] )

1)将两个或更多对象的内容合并到第一个对象目标对象(第一个参数)将被修改,并且将通过$.extend()返回。然而,如果我们想保留原对象,我们可以通过传递一个空对象作为目标对象:

var object = $.extend({}, object1, object2); 在默认情况下,通过$.extend()合并操作不是递归的;

2)deep类型: Boolean 如果是 true,合并成为递归(又叫做深拷贝)。不支持给这个参数传递 false,如果第一个对象的属性不写,就不会实现深拷贝

3)不深拷贝的例子

var object1 = {
  apple: 0,
  banana: { weight: 52, price: 100 },
  cherry: 97
};
var object2 = {
  banana: { price: 200 },
  durian: 100
};

// Merge object2 into object1
$.extend( object1, object2 );

结果:{"apple":0,"banana":{"price":200},"cherry":97,"durian":100}

4)深拷贝的例子

var object1 = {
  apple: 0,
  banana: { weight: 52, price: 100 },
  cherry: 97
};
var object2 = {
  banana: { price: 200 },
  durian: 100
};
 
$.extend( true, object1, object2 );

结果:{"apple":0,"banana"{"weight":52,"price":200},"cherry":97,"durian":100}

5、.clone( [withDataAndEvents ] )

.clone()方法深度复制所有匹配的元素集合,包括所有匹配元素、匹配元素的下级元素、文字节点

通常我们将页面上一个元素插入到DOM里另一个地方,它会被从老地方移走,类似剪切的效果

$('.hello').appendTo('.goodbye');

<div class="container"> <div class="goodbye">

Goodbye
<div class="hello">Hello</div>

</div> </div> 但是我们如果需要的是复制而不是剪切,我们可以像下面这样写代码:

$('.hello').clone().appendTo('.goodbye');

6、.index() / .index(selector)/ .index(element)

.get() 接受一个索引值参数并返回对应的DOM节点, .index() 与其正好相反,接受一个DOM节点然后返回其索引值

建议直接看jquery文档

7、.ready( handler )

当DOM准备就绪时,指定一个函数来执行

虽然JavaScript提供了load事件,当页面呈现时用来执行这个事件,直到所有的东西,如图像已被完全接收前,此事件不会被触发。

在大多数情况下,只要DOM结构已完全加载时,脚本就可以运行。传递处理函数给.ready()方法,能保证DOM准备好后就执行这个函数,因此,这里是进行所有其它事件绑定及运行其它 jQuery 代码的最佳地方。

如果执行的代码需要在元素被加载之后才能使用时,(例如,取得图片的大小需要在图片被加载完后才能知道),就需要将这样的代码放到 load 事件中。

下面两种语法全部是等价的:

$(document).ready(handler) $(handler) 我们经常这么使用

$(function(){

console.log('ready');

}); 这三种写法都表示一个意思

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • css 定位

    position: relative 相对默认的布局位置进行定位,也就是相对自己应该在的位置来定位。

    bamboo
  • vue笔记1 数据绑定,生命周期的钩子函数

    <script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>

    bamboo
  • css-浮动

    一个浮动盒会向左或向右移动,直到其外边(outer edge)挨到包含块边沿或者另一个浮动盒的外边。如果存在行盒,浮动盒的外top(边)会与当前行盒的top(边...

    bamboo
  • 我们向GPT-3问了15908个问题,终于发现了它的真面目

    在前段时间,OpenAI开放了GPT-3的API,人们争相申请成功后,用该API做出了许多令人惊艳的应用,也展现了GPT-3近乎拟人的能力。只需要少量示例,GP...

    AI科技评论
  • github代码管理

    简单的说NuGet可以是我们的工作更方便,当我们的项目里要引用到的一些库时候,比如JQuery、Newtonsoft.Json、log4net等,我们需要从网上...

    zls365
  • 轻松学Pytorch-使用卷积神经网络实现图像分类

    大家好,本篇教程的贡献者来自社区投稿作者【陨星落云】,使用CIFAR-10数据集进行图像分类。该数据集中的图像是彩色小图像,其中被分为了十类。一些示例图像,如下...

    OpenCV学堂
  • 8-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案安全篇(Apache 配置SSL,HTTPS连接)

    杨奉武
  • SpringClould Feign 报错 Request method 'POST' not supported 的解决办法

    如果feign代理的是get请求,则每个参数必须带上@RequestParam,否则会报post not support!

    飞奔去旅行
  • SSM异常分析之 - java.lang.NullPointerException

    HTTP Status 500 - Request processing failed; nested exception is java.lang.NullP...

    Little JAVA
  • 世界上最好的学习法:费曼学习法

    你是否曾幻想读一遍书就记住所有的内容?是否想学习完一项技能就马上达到巅峰水平?除非你是天才,不然这是不可能的。对于大多数的普通人来说,可以通过笨办法(死记硬背)...

    用户4172423

扫码关注云+社区

领取腾讯云代金券