JQuery利用find查找子元素并修改其样式和属性

最近做项目遇到一个根据ajax结果自动更新form表单内元素的需求,涉及到JQuery关于子元素的一些操作,特意记录一下。

测试环境

html如下

<div id="container">
    <div id="box1"><span id="span1"></span></div>
    <div id="box2"><span id="span2"></span></div>
    <span id="span3"></span>
</div>

子元素查找

既然涉及到子元素的查找,首先要找到父元素,将上述的div做为父元素

let $container=$('#container');

对于如何用JQ去查找元素,可以参照另一篇博客《JQuery的选择器和过滤器汇总》

之后就可以开始子元素的查找了。

JQ元素有两个方法可以用于子元素查找,分别是children()find()。其中带的参数也都是和查找元素一样的选择器和过滤器。

children方法

console.log($container.children('span'));

这时候打印的结果为

jQuery.fn.init [span#span3, prevObject: jQuery.fn.init(1)]
0: span#span3
length: 1
prevObject: jQuery.fn.init [div#container]
__proto__: Object(0)

只找到了id为span3的那个span,这说明children方法只能找到下一级的子元素,更深层次的无法查找。这就有一点类似css中的>符号。

find方法

console.log($container.find('span'));

结果如下

jQuery.fn.init(3) [span#span1, span#span2, span#span3, prevObject: jQuery.fn.init(1)]
0: span#span1
1: span#span2
2: span#span3
length: 3
prevObject: jQuery.fn.init [div#container]
__proto__: Object(0)

将三个元素都找到了,这说明find方法能找到所有的子元素,不管层级多深

下面就以find为例来说明下对元素的操作。

修改元素样式和属性

之前在文章《JQuery中元素操作和事件响应汇总》中对元素的操作有了笼统的介绍,这里详细说一下修改样式和属性的操作。

首先找到这三个span标签

let $span = $container.find('span');

此时如果是获取值只是对第一个元素,而如果修改或者赋值是对3个元素同时操作。

例如修改文字内容,用html()或者text()方法

$span.html('我被找到了!')

之后的显示效果如下

1-html.png

这里要注意的是还有一个val()方法,专门用于对表单元素,例如input,去获取和设置文字内容,这里就不演示了。例如想获取登陆页用户名,ajax传递到后台进行判断就需要用到这个方法。

如果是修改css样式可以直接用css()方法,修改单个样式就传入两个参数,分别是样式名称和值

$span.html('我被找到了!').css('color','red');

没错,属性和样式可以进行级联操作。之后的效果如下

2-color.png

如果想同时修改多个css样式可以传入一个字典,key为样式名,value为样式的值

$span.html('我被找到了!').css({'color':'red','font-size':'30px'});

之后的效果如下

3-dict.png

如果是修改属性,需要用到的是attr()方法,和css()一样也是可以修改单个属性或者是传入字典修改多个属性。当然因为修改class用的比较多,JQ中专门有addClass,removeClass和toggleClass来快速进行class的增删。

我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值