jQuery选择器是jQuery库的核心功能之一,它允许开发者使用CSS样式的语法来选择和操作DOM元素。jQuery选择器基于CSS1-3的选择器语法,并扩展了一些自定义选择器。
$("#id")
): 选择具有指定ID的元素$(".class")
): 选择具有指定类的所有元素$("element")
): 选择指定标签名的所有元素$("*")
): 选择所有元素$("selector1, selector2")
): 选择多个选择器匹配的元素优势: 语法简洁,与CSS选择器一致,学习成本低
$("ancestor descendant")
)$("parent > child")
)$("prev + next")
)$("prev ~ siblings")
):first
, :last
:even
, :odd
:eq(index)
, :gt(index)
, :lt(index)
:header
(选择所有标题元素):contains(text)
:empty
:has(selector)
:parent
:hidden
:visible
[attribute]
[attribute=value]
[attribute!=value]
[attribute^=value]
(以...开头)[attribute$=value]
(以...结尾)[attribute*=value]
(包含...):input
(所有input元素):text
, :password
, :radio
, :checkbox
, :submit
, :image
, :reset
, :button
, :file
:selected
, :checked
, :enabled
, :disabled
原因: 复杂的选择器或大量DOM操作会导致性能下降 解决方案:
var $element = $("#element");
$("#container").find(".item")
优于 $(".item")
原因: 选择器只在初始DOM加载时执行 解决方案:
$(document).on("click", ".dynamic-element", handler)
原因: jQuery选择器需要正确转义特殊字符 解决方案:
// 对于ID包含.或:等字符
$("#some\\.id") // 转义点号
$("#some\\:id") // 转义冒号
原因:
解决方案:
// 确保DOM加载完成
$(document).ready(function() {
// 选择器代码
});
// 或简写
$(function() {
// 选择器代码
});
$("form").submit(function() {
var isValid = true;
$("input[required]").each(function() {
if (!$(this).val()) {
isValid = false;
$(this).addClass("error");
}
});
return isValid;
});
// 高亮偶数行
$("table tr:even").addClass("highlight");
// 为所有外部链接添加图标
$("a[href^='http']").not("[href*='"+location.hostname+"']")
.addClass("external-link")
.append(' <i class="fa fa-external-link"></i>');
$(".menu-toggle").click(function() {
$("nav ul").toggleClass("visible");
});
// 点击菜单项后关闭移动菜单
$(document).on("click", "nav ul li a", function() {
$("nav ul").removeClass("visible");
});
document.getElementById()
):visible
等需要计算的选择器find()
方法在特定上下文中查找,而不是全局查找jQuery选择器虽然强大,但在现代前端开发中,原生JavaScript的querySelector
和querySelectorAll
方法性能更好,在不需要兼容旧浏览器的情况下可以考虑使用。
没有搜到相关的文章