jquery - jQuery:选择类等于特定类的nth-child(1)
问题描述
我正在尝试为class"cn"
的每个第一个div
元素添加一个唯一 ID "C"
,如下所示:
<div class="A">
<div class="B"></div>
<div class="C" id="c0"></div>
<div class="C"></div>
<div class="C"></div>
</div>
<div class="A">
<div class="B"></div>
<div class="C" id="c1"></div>
<div class="C"></div>
<div class="C"></div>
</div>
以下方法有效,但前提是 class 为的第一个div
元素是 class"C"
的第二个子元素"A"
。然而,情况可能并非总是如此。
$('.A :nth-child(2)').each(function(index, elem) {
elem.id = "c" + index;
});
有没有办法针对班级的第一个孩子的"A"
班级是"C"
?
$('.A .C:nth-of-class(1)')
我猜是这样的。
提前致谢。
解决方案
我看到我的第一个猜测是你丢弃的一个,但你可以测试它是否是 C
$("div.A >:nth-child(2)").each(function(i) {
if ($(this).is(".C")) $(this).attr("id","c"+i)
});
// NOTE if there are As that do not have ANY Cs you can do this
/*
var cnt=0
$(".A").each(function() {
var $c = $(this).find(".C").eq(0);
if ($c.length==1) $c.attr("id","c"+(cnt++))
});
*/
#c0 { color:red }
#c1 { color:green }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="A">
<div class="B">B</div>
<div class="C">C</div>
<div class="C">C</div>
<div class="C">C</div>
</div>
<div class="A">
<div class="B">B</div>
<div class="C">C</div>
<div class="C">C</div>
<div class="C">C</div>
</div>
您也可以使用 .eq
$(".A").each(function(i) {
$(this).find(".C").eq(0).attr("id","c"+i)
});
#c0 { color:red }
#c1 { color:green }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="A">
<div class="B">B</div>
<div class="C">C</div>
<div class="C">C</div>
<div class="C">C</div>
</div>
<div class="A">
<div class="B">B</div>
<div class="C">C</div>
<div class="C">C</div>
<div class="C">C</div>
</div>
推荐阅读
- typescript - 打字稿:传播类型只能从对象类型创建
- macos - macOS SecureTransport 拒绝导入 OpenSSL 接受的证书
- android - 将 GridLayoutManager 与 RecyclerView 一起使用时的 Admob 问题
- java - C#中时差代码的Java等效语法
- swift - 如何从 PDF 文件中提取图像
- asp.net - 如何将一个控件放在另一个控件的底部?
- javascript - 条件为真的数组的日志索引(有尽可能多的 0)
- javascript - Number.prototype.toString() 因大数而损坏
- python - 安装scrapy时出现安装错误
- c# - 我如何在 sql server 中保存 *.docx 文件并显示它