使用jQuery遍历按钮的所有多级子元素并获取title属性
解决遍历所有层级子元素title属性的问题
你当前代码里用的children()方法只能选中直接子元素(第一级),所以点击按钮只会输出第一级div的title。要获取所有层级的后代元素,需要用find("*")方法匹配当前元素下的所有后代节点,再遍历它们的title属性。
修改后的代码
$(".mybut").on("click", function(event) { // 选中当前按钮下所有带title属性的后代元素,避免输出undefined $(this).find("[title]").each(function() { console.log(this.title); }); });
代码说明
find("[title]"):精准匹配当前元素下所有带有title属性的后代元素(包含所有层级),这样不会遍历那些没有title的节点,避免控制台输出undefined。- 如果不需要过滤,直接用
find("*")也能选中所有后代元素,但会包含没有title属性的节点,遍历的时候可能输出undefined。
测试效果
点击第一个按钮时,控制台会依次输出:div1、span1、div2、div3;点击第二个按钮则输出div4、span2、div5、div6,完全符合需求。
内容的提问来源于stack exchange,提问作者Thread7
相关产品推荐
相关产品推荐

