jQuery选择器是jQuery库中用于查找和选择DOM元素的强大工具,它基于CSS选择器语法并进行了扩展。通过选择器可以快速定位页面上的元素,然后进行迭代操作。
$("#id")
- ID选择器$(".class")
- 类选择器$("element")
- 标签选择器$("*")
- 全选选择器$("selector1, selector2")
- 多选选择器$("parent > child")
- 子元素选择器$("ancestor descendant")
- 后代选择器$("prev + next")
- 相邻兄弟选择器$("prev ~ siblings")
- 一般兄弟选择器:first
, :last
- 首尾元素:even
, :odd
- 奇偶元素:eq(index)
- 指定索引元素:gt(index)
, :lt(index)
- 大于/小于索引:not(selector)
- 非选择器.each()
方法$("selector").each(function(index, element) {
// index - 当前元素在集合中的索引
// element - 当前DOM元素(原生)
// $(this) - 当前jQuery对象
console.log(index, element, $(this).text());
});
$("selector").css("color", "red"); // 自动应用于所有匹配元素
.map()
方法转换元素var texts = $("selector").map(function() {
return $(this).text();
}).get();
原因:复杂的选择器或大DOM树导致查询慢
解决方案:
$("#container .item")
优于$(".item")
原因:动态增删元素会影响迭代过程
解决方案:
this
上下文问题原因:在回调函数中this
指向可能变化
解决方案:
$(this)
$(this)
*
find()
在已查找到的上下文中进一步搜索// 示例:统计页面中不同标签的数量
var tagCount = {};
$("*").each(function() {
var tagName = this.tagName.toLowerCase();
tagCount[tagName] = (tagCount[tagName] || 0) + 1;
});
console.log("Tag counts:", tagCount);
// 示例:为所有外部链接添加target="_blank"
$("a[href^='http']").each(function() {
var href = $(this).attr("href");
if (!href.match(new RegExp("^http(s)?://" + window.location.host))) {
$(this).attr("target", "_blank");
}
});
jQuery选择器迭代DOM元素是前端开发中的基础技能,掌握这些方法可以高效地操作页面元素,实现丰富的交互效果。
没有搜到相关的沙龙