如何用jQuery的:contains选择器获取多个匹配的label元素?
如何获取jQuery中所有匹配
contains选择器的元素属性? 你当前的问题在于,label.attr('for')只会返回第一个匹配元素的for属性值,要获取所有匹配元素的属性,需要遍历每个元素,以下是两种可行方案:
方案1:使用.each()遍历输出
通过.each()方法循环所有匹配的label元素,逐个获取并输出for属性:
$('label:contains(My Name is)').each(function() { console.log($(this).attr('for')); });
这段代码会依次在控制台输出michel和allen。
方案2:使用.map()收集为数组
如果需要将所有for属性值整理成数组,方便后续批量处理,可以用.map():
const allForValues = $('label:contains(My Name is)').map(function() { return $(this).attr('for'); }).get(); console.log(allForValues); // 输出 ["michel", "allen"]
.map()会收集每个元素返回的属性值,最后通过.get()将jQuery对象转换为普通数组。
补充说明
jQuery的attr()方法在匹配多个元素时,默认仅返回第一个元素的属性值,这是它的内置行为。因此处理多元素时,必须通过遍历或映射的方式逐个处理每个匹配项。
内容的提问来源于stack exchange,提问作者Amado
相关产品推荐
相关产品推荐

