在普通的 JavaScript 中,你会使用类似的东西:
// Single
document.querySelector(".onediv").classList.add("red");
// Multiple (deeply nested)
document.querySelectorAll(".onediv:first-child").forEach(EL => EL.classList.add("red"));
或者通过父元素使用Element.firstElementChild:
// Single Parent
document.querySelector(".alldivs").firstElementChild.classList.add("red");
// Multiple parents
document.querySelector(".alldivs").forEach(EL => EL.firstElementChild.classList.add("red"));
jQuery 获取第一个孩子
使用:$(".onediv").eq(0)
选择器和方法的其他示例以UL内的first LI为目标:
它们在深度方面的操作方式略有不同。试玩以下演示示例:
$("select").on("change", function() {
$("li").removeClass("red");
new Function(`return (${this.value})`)();
}).trigger("change");
.red {color: red;}
option[disabled] {font-size: 1.4em; color: blue;}
<select>
<option disabled>jQuery examples:</option>
<option>$("li").eq(0).addClass("red")</option>
<option>$("li:eq(0)").addClass("red")</option>
<option>$("li").first().addClass("red")</option>
<option>$("li:first").addClass("red")</option>
<option>$("li:first-child").addClass("red")</option>
<option>$("li:lt(1)").addClass("red")</option>
<option>$("li:nth-child(1)").addClass("red")</option>
<option>$("li").slice(0,1).addClass("red")</option>
<option disabled>JavaScript examples:</option>
<option>document.querySelector("li").classList.add("red")</option>
<option>document.querySelectorAll("li:first-child").forEach(EL => EL.classList.add("red"))</option>
<option disabled>Mixed jQuery + JavaScript</option>
<option>$("li")[0].classList.add("red")</option>
</select>
<ul>
<li>1</li>
<li>2
<ul>
<li>2.1</li>
<li>2.2</li>
</ul>
</li>
<li>3</li>
</ul>
<script src="https://code.jquery.com/jquery-3.6.0.js"></script>
您也可以使用[i] 从jQuery 元素集合中通过index 获取JS 元素,例如:
$("li")[0]
但现在您拥有原生 JS Element 表示,您必须使用 JavaScript 方法,例如:
$("li")[0].classList.add("active"); // Adds class "active" to the first LI in the DOM
或者你可以(不要 - 这是糟糕的设计)将它包装回一个 jQuery 对象
$( $("li")[0] ).addClass("active"); // Don't! Use .eq() instead