jQuery基本操作之二

jQuery2
jQuery属性操作:
prop获取元素固定的属性值:
1.获取属性值语法:
prop(“属性”)
$(“a”).prop(“href”)
2.设置属性语法:
prop(“属性”,“属性值”)
$(“a”).prop(“title”,“我们都很好”)
KaTeX parse error: Expected '}', got 'EOF' at end of input: …){ console.log((this).prop(“checked”));
})

设置或获取元素自定义属性attr()
1.获取属性语法:
attr(“属性”)//类似原生getAttribute()
2.设置属性语法
attr(“属性”,“属性值”)
data-index
数据缓存:data()
data()方法可以在指定元素上存取数据,并不会修改DOM元素结构,一旦页面刷新,之前存放的数据都将被移除

( " s p a n " ) . d a t a ( " u n a m e " , " a n d y " ) ; c o n s o l e . l o g ( ("span").data("uname","andy"); console.log( ("span").data("uname","andy");console.log((“span”).data(“uname”));
可以获取H5自带的属性data-index,不用写data开头的,得到的是数字型
1.附加数据语法
data(“name”,“value”)//向被选元素附加数据
2.获取数据语法
data(“name”)//像被选元素获取数据
console.log( ( " d i v " ) . d a t a ( " i n d e x " ) ) ; 购 物 车 全 选 案 例 : : c h e c k e d 选 择 器 , : c h e c k e d 查 找 被 选 中 的 表 单 元 素 / / ("div").data("index")); 购物车全选案例: :checked选择器,:checked查找被选中的表单元素 // ("div").data("index"));:checked:checked//(".j-checkbox").length所有的小复选框的个数
全选按钮:checkall
商品前面的按钮j-checkbox
$(function(){
$(".checkall").change(function(){
( " . j − c h e c k b o x , . c h e c k a l l " ) . p r o p ( " c h e c k e d " , (".j-checkbox,.checkall").prop("checked", (".jcheckbox,.checkall").prop("checked",(this).prop(“checked”));
})
//改变选中的购物车颜色
if($(this).prop(“checked”)){
$(".cart-item").addClass(“check-cart-item”);
}else{
$(".cart-item").removeClass(“check-cart-item”);
}
KaTeX parse error: Expected '}', got 'EOF' at end of input: …function(){ if((".j-checkbox:checked").length===$(".j-checkbox").length){
$(".checkall").prop(“checked”,true);
}else{
KaTeX parse error: Expected 'EOF', got '}' at position 38: …ecked",false); }̲ if((this).prop(“checked”)){
$(this).parents(".cart-item").addClass(“check-cart-item”);
}else{
$(this).parents(".cart-item").removeClass(“check-cart-item”);
}
})
})
jQuery内容文本值:
1.普通元素内容:html()
2.获取设置元素文本内容text()
3.获取设置表单值val()
购物车增减商品数量案例:
核心思路:
1)首先声明一个变量,当我们点击+号(increment),就让这个值++,然后付给文本框
2)注意1:只能增加商品的数量,就是当前+号的兄弟文本框(itxt)的值
3)修改表单的值是val()方法
4)注意2:这个变量的初始值应该是这个文本框的值,在这个值的基础上++,要获取表单的值
5)减号(decrement)思路同理,但是如果文本框的值是1,就不能再减了
KaTeX parse error: Expected '}', got 'EOF' at end of input: …ction(){ var n=(“this”).siblings(".itxt").val();
n++;
( " t h i s " ) . s i b l i n g s ( " . i t x t " ) . v a l ( n ) ; / / v a r p = ("this").siblings(".itxt").val(n); //var p= ("this").siblings(".itxt").val(n);//varp=(“this”).parent().parent().siblings(“p-price”).html();
p=p.substr(1);
// ( " t h i s " ) . p a r e n t ( ) . p a r e n t ( " p − s u m " ) . s i b l i n g s ( " p − p r i c e " ) . h t m l ( " ¥ " + p ∗ n ) ; v a r p = ("this").parent().parent("p-sum").siblings("p-price").html("¥"+p*n); var p= ("this").parent().parent("psum").siblings("pprice").html(""+pn);varp=(“this”).parents(".p-num").siblings(“p-price”).html();
p=p.substr(1);
var price=(pn).toFixed(2);
$(“this”).parents(“p-num”).siblings(“p-sum”).html(“¥”+price);
getSum();
})
KaTeX parse error: Expected '}', got 'EOF' at end of input: …ction(){ var n=(“this”).siblings(".itxt").val();
if(n==1){
return false;
}
n–;
( " t h i s " ) . s i b l i n g s ( " . i t x t " ) . v a l ( n ) ; / / v a r p = ("this").siblings(".itxt").val(n); //var p= ("this").siblings(".itxt").val(n);//varp=(“this”).parent().parent().siblings(“p-price”).html();
p=p.substr(1);
// ( " t h i s " ) . p a r e n t ( ) . p a r e n t ( " p − s u m " ) . s i b l i n g s ( " p − p r i c e " ) . h t m l ( " ¥ " + p ∗ n ) ; v a r p = ("this").parent().parent("p-sum").siblings("p-price").html("¥"+p*n); var p= ("this").parent().parent("psum").siblings("pprice").html(""+pn);varp=(“this”).parents(".p-num").siblings(“p-price”).html();
p=p.substr(1);
var price=(p
n).toFixed(2);
$(“this”).parents(“p-num”).siblings(“p-sum”).html(“¥”+price);
getSum();
}
KaTeX parse error: Expected '}', got 'EOF' at end of input: …ction(){ var n=(this).val();
var p=$(“this”).parents(".p-num").siblings(“p-price”).html();
p=p.substr(1);
KaTeX parse error: Expected 'EOF', got '}' at position 72: …ce); getSum(); }̲) }) 修改商品小计模块: …(".four").parents(".one"));
6)最后计算的结果如果想要保留2位小数通过toFixed(2)方法
7)用户也可以直接修改表单里面的值,同样要计算小计。用表单change事件
8)用最新的表单内的值乘以单价即可,但是还是当前商品小计
jQuery元素操作:
jquery隐式迭代是对同一类元素做了同样的操作,如果想要给同一类元素做不同的操作,就需要用到遍历
语法1:
( " d i v " ) . e a c h ( f u n c t i o n ( i n d e x , d o m E l e ) x x x ; ) 1. e a c h ( ) 方 法 遍 历 匹 配 的 每 一 个 元 素 , 主 要 用 D O M 处 理 , e a c h 每 一 个 2. 里 面 的 回 调 函 数 有 2 个 参 数 : i n d e x 是 每 个 元 素 的 索 引 号 , d e m E l e 是 每 个 D O M 元 素 对 象 , 不 是 j Q u e r y 对 象 3. 所 以 想 要 使 用 j Q u e r y 方 法 , 需 要 给 这 个 d o m 元 素 转 换 为 j q u e r y 对 象 ("div").each(function(index,domEle){xxx;}) 1.each()方法遍历匹配的每一个元素,主要用DOM处理,each每一个 2.里面的回调函数有2个参数:index是每个元素的索引号,demEle是每个DOM元素对象,不是jQuery对象 3.所以想要使用jQuery方法,需要给这个dom元素转换为jquery对象 ("div").each(function(index,domEle)xxx;)1.each()DOMeach2.2indexdemEleDOMjQuery3.使jQuerydomjquery(domEle)
//回调函数第一个参数一定是索引号,可以自己指定索引号名称
var sum=0;
var arr=[“red”,“green”,“blue”];
$(function(){
$(“div”).each(function(i,domEle){
console.log(i);
console.log(domEle);
//回调函数第二个参数一定是DOM元素对象
domEle.css(“color”);//错误,这是一个DOM对象,DOM对象是没有css方法的,不能使用jquery方法
( d o m E l e ) . c s s ( " c o l o r " , a r r [ i ] ) ; s u m + = p a r s e I n t ( (domEle).css("color",arr[i]); sum+=parseInt( (domEle).css("color",arr[i]);sum+=parseInt((domEle).text());
})
console.log(sum);
})
语法2:
. e a c h ( o b j e c t , f u n c t i o n ( i n d e x , e l e m e n t ) x x x ; ) 1. .each(object,function(index,element){xxx;}) 1. .each(object,function(index,element)xxx;)1..each方法可用于遍历任何对象,主要用于数据处理,比如数组,对象
2.里面的函数有2个参数:index是每个元素的索引号;element遍历内容
. e a c h ( .each( .each((“div”),function(i,ele){
console.log(i);
console.log(ele);
})
$.each(arr,function(i,ele){
console.log(i);
console.log(ele);
})
$.each({name:“andy”,
age:18
},function(i,ele){
console.log(i);//输出的是name、age属性名
console.log(ele);//输出属性值
})
购物车总计和总和模块:
核心思路:
1)把文本框里面的值相加就是总价数量,总额同理
2)文本框里面的值不相同,如果想要相加需要用到each遍历,声明一个变量相加即可
3)点击+号-号,会改变总计和总额,如果用户修改了文本框里面的值同样会改变总计和总额
4)因此可以封装一个函数求总计和总额的,以上2个操作调用这个函数即可
5)注意1:总计是文本框里面的内容相加用val(),总额是普通元素的内容用test()
6)要注意普通元素里面的内容要去掉¥并且转换为数字型才能相加
getSum();
function getSum(){
var count=0;//计算总件数
var money=0;//计算总价钱
KaTeX parse error: Expected '}', got 'EOF' at end of input: …ount+=parseInt((ele).val());
})
$(".amount-sum em").text(count);
KaTeX parse error: Expected '}', got 'EOF' at end of input: …ey+=parseFloat((ele).text().substr(1));
});
$(".price-sum em").text(“¥”+money.toFixed(2));
}
创建添加删除元素:
KaTeX parse error: Expected '}', got 'EOF' at end of input: … 1.创建元素 var li=(“

  • 我是后来创建的li
  • ”)
    2.添加元素
    (1)内部添加
    //$(“ul”).append(li);//内部添加并且放到元素的最后面
    ( " u l " ) . p r e p e n d ( l i ) ; / / 内 部 添 加 并 且 放 到 元 素 的 最 前 面 ( 2 ) 外 部 添 加 v a r d i v = ("ul").prepend(li);//内部添加并且放到元素的最前面 (2)外部添加 var div= ("ul").prepend(li);//2vardiv=(“
    我是后妈生的
    ”);
    //$(".test").after(div);
    $(".test").before(div);
    3.删除元素//element.remove()删除匹配的元素
    //element.empty()//删除匹配的元素集合中所有的子节点
    element.html("")//清除匹配的元素内容

    })
    删除商品模块:
    核心思路:
    1)把商品remove()删除元素即可
    2)有三个地方需要删除:1.商品后面的删除按钮,2.删除选中的商品3.清理购物车
    3)商品后面的删除按钮:一定是删除当前的商品,所以从$(this)出发
    4)删除选中的商品:先判断小的复选框是否选中状态,如果是选中,则删除对应的商品
    $(".p-action a").click(function(){
    $(this).parents(".cart-item").remove();
    getSum();
    })
    $("".remove-batch).click(function(){
    $(".j-checkbox:checked").parents(".cart-item").remove();
    getSum();
    })
    $(".clear-all").click(function(){
    KaTeX parse error: Expected 'EOF', got '}' at position 36: …e(); getSum(); }̲) 购物车选中商品添加背景: …(this).prop(“checked”)){
    $(".cart-item").addClass(“check-cart-item”);
    }else{
    $(".cart-item").removeClass(“check-cart-item”);
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

想成为前端工程师滴小小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值