jQuery中无需重复定义容器,为多元素添加属性的方法
解决jQuery中避免重复容器选择器的问题
你可以用jQuery的.find()方法来解决这个问题,它能在已选中的容器内部查找指定子元素,不用重复写长长的容器选择器。
你的第二个代码不能运行,是因为直接给jQuery对象加括号传函数不是正确的语法,正确的写法应该是这样:
$('.carousel .content .section.collapsed').find('a[href], *[tabindex]').attr("inert", "");
这样就和你第一个能运行的代码效果完全一致,但避免了重复拼写容器选择器。.find()会遍历每个选中的.section.collapsed容器,在它们内部查找所有匹配a[href]和*[tabindex]的元素,然后统一给这些元素添加inert属性。
如果需要对每个容器单独处理(比如有特殊逻辑),也可以用.each()方法,写法如下:
$('.carousel .content .section.collapsed').each(function() { $(this).find('a[href], *[tabindex]').attr("inert", ""); });
这里的$(this)指向当前遍历到的容器元素,再用.find()查找它内部的目标元素,同样不需要重复写容器选择器。
内容的提问来源于stack exchange,提问作者DeanH
相关产品推荐
相关产品推荐

