定位 CSS 类的特定实例
Target specific instance of CSS class
有什么方法可以让我定位第三个div是这个列表并对其应用一个新的CSS类吗?
如果可能的话,使用CSS,JS或jQuery。(或任何人都能想到的任何其他内容)
<div class="item"><p>TEST TEST</p></div>
<div class="item"><p>TEST TEST</p></div>
<div class="item"><p>TEST TEST</p></div>
<div class="item"><p>TEST TEST</p></div>
<div class="item"><p>TEST TEST</p></div>
<div class="item"><p>TEST TEST</p></div>
没有 CSS 类这样的东西.CSS有选择器。一种类型的选择器是类选择器。HTML 有类。
您可以组合任意数量的选择器。听起来你想要第 n 个孩子的伪类选择器。
.item:nth-child(3) { }
没有"CSS class"这样的东西,更不用说它的实例了。你想要的是针对属于某个类(在 HTML 标记中分配给它的div
元素中的第三个。
答案是,这取决于周围的环境。如果不知道这一系列div
元素如何嵌套在其他元素中以及哪些元素(尤其是div
元素可能出现在它之前),就无法定位所需的元素。
例如,如果我们假设这些元素构成了像 <div class=foo>...</div>
这样的元素的内容,那么它很简单:
.foo > :nth-child(3) { /* CSS declarations here */ }
但是,某些旧版本的IE不支持:nth-child()
伪类。
纯 JavaScript 解决方案
您可以使用getElementsByClassName
:
// Gets the third element with the class "item"
element = document.getElementsByClassName("item")[2];
// Assigns a new class to it
element.setAttribute("class", "newclass");
使用 jQuery:
$("div.item:eq(2)").addClass("test");
演示
如果你想要一个CSS解决方案,你可以像这样做
div.item:nth-of-type(3) {
/* Target 3rd div */
}
这不会添加类,但会针对第 3 个div
演示
我不知道反对票的用途是什么,但也要确保将这些元素绑定到包装元素中,例如div
有类wrapper
这样选择器将是
div.wrapper > div.item:nth-of-type(3) {
/* Styles here */
}
使用普通 JS:
var items = document.getElementsByClassName("item");
myItem = items[2]; // as the first element is 0, third element is position 2 in the array;
myItem.setAttribute('class', 'myClass');
较短的方法是:
document.getElementsByClassName('item')[2].setAttribute('class', 'myClass');
您必须小心此方法和其他方法,因为如果页面上有其他带有类"item"的内容,它也会计算在内,您能做的最好的事情就是将所有这些div包装在父div中,给该父div一个ID或其他东西,然后以父div为目标。
使用 JQuery 查找带有 CSS 选择器的类"项目",要求输入 3 个并添加类:
$('.item:nth-of-type(3)').addClass('new-class');
对于这样的马库-
<div id="div1" class="someclass">
<img ... id="image1" name="image1" />
</div>
你可以在javascript中做到这一点
var d = document.getElementById("div1");
d.className = d.className + " otherclass";
并且可以在jQuery中使用addClass方法。
- ES6构造函数返回基类的实例
- CSS-如何定位内容数据标题
- 窗口大小html css
- 如果文本字段为空,则使用JavaScript应用CSS样式
- 动画.CSS重播
- 有没有一种方法可以防止img get请求使用css或js发生
- CSS表格:从列平移到整个表格宽度
- KnockoutJS-组件-多个实例
- 使用jQuery在类的每个实例上添加随机CSS
- 无法在单个 HTML 页面上显示 Java/CSS 图像库的多个实例
- 定位 CSS 类的特定实例
- css中类的第二个实例的快捷方式
- Meteor不渲染css,并且在使用外部DDP Meteor实例时不断重新加载应用程序
- 更新CKEditor'在实例已经创建之后,通过JavaScript创建的CSS
- CSS转换持续时间不适用于转换效果的第一个实例
- 当标记有多个实例时,如何为类的一个实例设置CSS ?
- 有没有一种方法可以让一个CSS类的实例出现在多个元素上,但一次只能出现一个元素?
- 带有css和javascript资源的本地Tomcat实例
- 如何创建一个CSS类的多个实例
- 星级评级系统:CSS只在一个实例上工作