Fork me on GitHub

Jquery复习DAY2(jQuery 属性操作 jQuery 文本属性值 jQuery 元素操作)

5. jQuery 属性操作

5.1 设置或获取元素固有属性值 prop()

所谓元素固有属性就是元素本身自带的属性,比如 <a> 元素里面的 href ,比如 <input> 元素里面的 type。
1. 获取属性语法
prop(''属性'')
2. 设置属性语法
prop(''属性'', ''属性值'')

5.2 设置或获取元素自定义属性值 attr()

用户自己给元素添加的属性,我们称为自定义属性。 比如给 div 添加 index =“1”。
1. 获取属性语法
attr(''属性'') // 类似原生 getAttribute()
2. 设置属性语法
attr(''属性'', ''属性值'') // 类似原生 setAttribute()
改方法也可以获取 H5 自定义属性

5.3 数据缓存 data()

data() 方法可以在指定的元素上存取数据,并不会修改 DOM 元素结构。一旦页面刷新,之前存放的数据都将被移除。
1. 附加数据语法
data(''name'',''value'') // 向被选元素附加数据
2. 获取数据语法
date(''name'') // 向被选元素获取数据
同时,还可以读取 HTML5 自定义属性 data-index ,得到的是数字型
 
 

6. jQuery 内容文本值

 

主要针对元素的内容还有表单的值操作。
1. 普通元素内容 html()( 相当于原生inner HTML)
html() // 获取元素的内容
html(''内容'') // 设置元素的内容
2. 普通元素文本内容 text() (相当与原生 innerText)
text() // 获取元素的文本内容
text(''文本内容'') // 设置元素的文本内容
主要针对元素的内容还有表单的值操作。
3. 表单的值 val()( 相当于原生value)
val() // 获取表单的值
val(''内容'') // 设置表单的值
 

7. jQuery 元素操作

 

(主要是遍历、创建、添加、删除元素操作)

7.1 遍历元素

jQuery 隐式迭代是对同一类元素做了同样的操作。 如果想要给同一类元素做不同操作,就需要用到遍历。
语法1:
$("div").each(function (index, domEle) { xxx; })
1. each() 方法遍历匹配的每一个元素。主要用DOM处理。 each 每一个
2. 里面的回调函数有2个参数: index 是每个元素的索引号; demEle 是每个DOM元素对象,不是jquery对象
3. 所以要想使用jquery方法,需要给这个dom元素转换为jquery对象 $(domEle)
 
jQuery 隐式迭代是对同一类元素做了同样的操作。 如果想要给同一类元素做不同操作,就需要用到遍历。
语法2:
$.each(object,function (index, element) { xxx; })
1. $.each()方法可用于遍历任何对象。主要用于数据处理,比如数组,对象
2. 里面的函数有2个参数: index 是每个元素的索引号; element 遍历内容
 

7.2 创建元素

语法:
$(''<li></li>'');
动态的创建了一个 <li>

7.3 添加元素

1. 内部添加
element.append(''内容'')
把内容放入匹配元素内部最后面,类似原生 appendChild。
element.prepend(''内容'')
把内容放入匹配元素内部最前面。
 
2. 外部添加
element.after(''内容'') // 把内容放入目标元素后面
element.before(''内容'') // 把内容放入目标元素前面
① 内部添加元素,生成之后,它们是父子关系。
② 外部添加元素,生成之后,他们是兄弟关系。
 

7.4 删除元素

element.remove() // 删除匹配的元素(本身)
element.empty() // 删除匹配的元素集合中所有的子节点
element.html('''') // 清空匹配的元素内容
① remove 删除元素本身。
② empt() 和 html('''') 作用等价,都可以删除元素里面的内容,只不过 html 还可以设置内容。
 

 

 

其他:

 

购物车案列分析

案例:购物车案例模块-全选分析

① 全选思路:里面3个小的复选框按钮(j-checkbox)选中状态(checked)跟着全选按钮(checkall)走。
② 因为checked 是复选框的固有属性,此时我们需要利用prop()方法获取和设置该属性。
③ 把全选按钮状态赋值给3小复选框就可以了。
④ 当我们每次点击小的复选框按钮,就来判断:
⑤ 如果小复选框被选中的个数等于3 就应该把全选按钮选上,否则全选按钮不选。
⑥ :checked 选择器 :checked 查找被选中的表单元素。

案例:购物车案例模块-增减商品数量分析

① 核心思路:首先声明一个变量,当我们点击+号(increment),就让这个值++,然后赋值给文本框。
② 注意1: 只能增加本商品的数量, 就是当前+号的兄弟文本框(itxt)的值。
③ 修改表单的值是val() 方法
④ 注意2: 这个变量初始值应该是这个文本框的值,在这个值的基础上++。要获取表单的值
⑤ 减号(decrement)思路同理,但是如果文本框的值是1,就不能再减了

案例:购物车案例模块-修改商品小计分析

① 核心思路:每次点击+号或者-号,根据文本框的值 乘以 当前商品的价格 就是 商品的小计
② 注意1: 只能增加本商品的小计, 就是当前商品的小计模块(p-sum)
③ 修改普通元素的内容是text() 方法
④ 注意2: 当前商品的价格,要把¥符号去掉再相乘 截取字符串 substr(1)
⑤ parents(‘选择器’) 可以返回指定祖先元素
⑥ 最后计算的结果如果想要保留2位小数 通过 toFixed(2) 方法
⑦ 用户也可以直接修改表单里面的值,同样要计算小计。 用表单change事件
⑧ 用最新的表单内的值 乘以 单价即可 但是还是当前商品小计

案例:购物车案例模块-计算总计和总额

① 核心思路:把所有文本框里面的值相加就是总计数量。总额同理
② 文本框里面的值不相同,如果想要相加需要用到each遍历。声明一个变量,相加即可
③ 点击+号-号,会改变总计和总额,如果用户修改了文本框里面的值同样会改变总计和总额
④ 因此可以封装一个函数求总计和总额的, 以上2个操作调用这个函数即可。
⑤ 注意1: 总计是文本框里面的值相加用 val() 总额是普通元素的内容用text()
⑥ 要注意普通元素里面的内容要去掉¥并且转换为数字型才能相加

案例:购物车案例模块-删除商品模块

① 核心思路:把商品remove() 删除元素即可
② 有三个地方需要删除: 1. 商品后面的删除按钮 2. 删除选中的商品 3. 清理购物车
③ 商品后面的删除按钮: 一定是删除当前的商品,所以从 $(this) 出发
④ 删除选中的商品: 先判断小的复选框按钮是否选中状态,如果是选中,则删除对应的商品
⑤ 清理购物车: 则是把所有的商品全部删掉

案例:购物车案例模块-选中商品添加背景

① 核心思路:选中的商品添加背景,不选中移除背景即可
② 全选按钮点击:如果全选是选中的,则所有的商品添加背景,否则移除背景
③ 小的复选框点击: 如果是选中状态,则当前商品添加背景,否则移除背景
④ 这个背景,可以通过类名修改,添加类和删除类

 

 

1.考点:jQuery 属性操作

单选题

关于jQuery,以下描述正确的是:

A,prop() 可以获取和设置普通属性,但是表单属性 disabled / selected / checked 等就无能为力了。

B,attr() 可以获取和设置普通属性,但是自定义属性就无能为力了。

C, data()可以自定义属性,且不会出现在标签上。

D,以上答案均正确。

答案: C

解析:

A选项,prop() 可以操作表单属性 disabled / selected / checked等,且只适合他操作。

B选项,attr() 可以自定义属性。

难度: ☆☆☆

 

 

 

 

2.考点:jQuery 文本属性值

单选题

下列方法,可以获取 input 中value属性的方法是:

A,html()

B,text()

C,val()

D,三个方法都不可以

答案: C

解析:

A选项,类似 innerHTML 属性

B选项,类似 innerText 属性

C选项,类似value属性

难度: ☆☆

 

 

3.考点:jQuery 元素操作

多选题

下列 jQuery 的元素操作,说法正确的是:

A,each() 可以遍历jQuery对象中的每一个元素,但是回调函数中的对象为DOM对象。

B,jQuery 创建元素只有 $('标签') 这一种方法。

C,append() 和 prepend() 功能完全相同,可以交换使用。

D,remove() 和 html() 都可以删除元素。

答案: AD

解析:

B选项,html() 识别标签,所以也可以用它创建元素。

C选项,append() 和 prepend() 前者添加到父元素的最末尾,后者添加到最前面。

难度: ☆☆☆

 

 

 

4.考点:jQuery 的尺寸操作

多选题

以下说法,正确的是:

A,height() 既可以获取 height 值,也可以设置 height 值。

B,css('height')和height()获取的结果完全一样,只不过 height() 更简单一点儿。

C,height() 和 innerHeight() 和 outerHeight() 方法获取的盒子属性不一样。

D,以上说法都正确。

答案: AC

解析:

B选项: css('height')获取的是字符串带有单位,height() 获取的是数值,无单位。

难度: ☆☆☆

 

 

 

 

5.考点: jQuery 位置操作

多选题

下列 jQuery 方法,描述错误的是:

A,offset()方法用于获取盒子距离整个页面的距离,和父盒子是否有定位没有关系。

B,position()获取的是距离所有父盒子中,嵌套自己最近的父盒子的距离,可以获取,也可以赋值。

C,scrollTop()和scrollLeft()可用于获取盒子或者页面顶部和左侧的超出(或者卷起)部分。

D,animate()可以让页面滑动到顶端或者指定位置,使用方法需要两个参数:animate( scrollTop, 值 ) ;

答案: BD

解析:

B选项,position() 只能获取值,不能赋值。

D选项,animate() 滑动页面的正确用法是传递一个对象:animate( {scrollTop: 值} )

难度: ☆☆☆☆

 

 

 

6.考点:代码题

单选题

运行一下代码,正确的输出结果是:

<body>
<style>
       div {
           height: 100px;
           width: 200px;
           background-color: pink;
           margin: 10px;
           padding: 20px;
           border: 10px solid red;
      }
   </style>

   <div></div>
   <script src='http://code.jquery.com/jquery-latest.js'>
   <script>
       $(function() {
           console.log($("div").innerWidth());
      })
   </script>
</body>

A,120

B,140px

C,220

D,240

答案:D

解析:

  1. innerWidth() / innerHeight() 获取设置元素 width和height + padding 大小

  2. 不带单位

难度: ☆☆☆

 

 

 

7.考点:综合题

多选题

下列说法,错误的是:

A,attr()和prop()都可以操作普通属性,前者更适合自定义属性操作,后者更适合操作表单属性disabled、selected、checked等。

B,html() 和text() 功能一样,可以替换使用。

C,after() 是把调用者作为父元素,把参数作为子元素,放到调用者的最末尾。

D,scrollTop() 操作页面时,只可以获取页面被卷去的部分,不能赋值修改页面的显示位置。

答案:BCD

解析:

B选项,错误在于html()识别标签,text()不识别标签。

C选项,错误在于after()方法是以兄弟节点的形式插入节点。

D选项,scrollTop() 既可以获取页面被卷去的部分,也可以进行赋值修改。

难度: ☆☆☆☆

 

posted on 2020-03-17 21:49  康心志  阅读(501)  评论(0编辑  收藏  举报

导航