如何使用 JQuery 将 css 属性应用于子元素

Posted

技术标签:

【中文标题】如何使用 JQuery 将 css 属性应用于子元素【英文标题】:How to apply css property to a child element using JQuery 【发布时间】:2021-02-25 01:12:02 【问题描述】:

有没有办法选择具有多个子级的组件,指向其中一个并应用 css 属性或某个类?

假设我有这个 div:

<div class="parent">
   <div>Child 1</div>
   <div>Child 2</div>
   <div>Child 3</div>
</div>

我想为第二个 div 应用一个 css 属性。

我试过了:

$('.parent')[0].children[1].css('display', 'block')

但我收到此错误:Cannot read property 'children' of undefined

我不明白的是,如果我将$('.parent')[0].children[1] 登录到控制台,我会得到子 div,所以,我认为这就是方式,但似乎我错了。

有没有办法做到这一点?

【问题讨论】:

删除[0] =)) 【参考方案1】:

当您在 jQuery 对象上使用数组索引时,它会返回一个 DOM 元素,而不是 jQuery 对象,因此您不能在其上使用 jQuery 方法。使用.eq() 将其保留为 jQuery 对象。

$('.parent').eq(0).children().eq(1).css('display', 'block');
.parent div 
  display: none;
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="parent">
   <div>Child 1</div>
   <div>Child 2</div>
   <div>Child 3</div>
</div>

【讨论】:

【参考方案2】:

您可以在父元素上使用find 方法选择所有子div 元素,然后使用eq 方法按索引选择特定子元素。

您也可以使用 $('.parent &gt; div:eq(1)') 等选择器来做到这一点

$('.parent').find('div').eq(1).css('color', 'red')
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="parent">
  <div>Child 1</div>
  <div>Child 2</div>
  <div>Child 3</div>
</div>

【讨论】:

【参考方案3】:

这段代码应该可以工作。

$(".container div").css("background-color", "red");
.container 
  background-color: blue;
  height: 100%;
  width: 100%;
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="container">
  <div>1</div>
  <div>2</div>
  <div>3</div>
</div>

只需给第二个 div 一个 ID,而不是使用 div 使用 #second-div-id

【讨论】:

以上是关于如何使用 JQuery 将 css 属性应用于子元素的主要内容,如果未能解决你的问题,请参考以下文章

将 CSS 样式应用于子元素

将 CSS 应用于子组件不起作用

如何将整个查询的 where 子句也应用于子查询?

如何使用jQuery慢慢将css属性更改为auto?

如何将 Pig 元组拆分为子元组?

React-Native:borderRadius未正确应用于子组件(即Image),但该属性应用于touchableOpacity。