如何在Chrome谷歌控制台用jQuery从HTML中提取链接URL与名称存入数组
Chrome控制台批量提取指定a标签URL及文本方案
问题修复说明
原有代码存在三个核心错误:
- 样式属性选择器写法错误,不能用
a[style.textDecoration:none]这种格式,CSS属性选择器匹配style内的规则需要用模糊匹配语法 - 混用原生DOM方法和jQuery语法,
document.querySelectorAll返回的是NodeList,没有jQuery的each方法,需要转jQuery对象或者用原生forEach - 变量声明、数组push格式存在语法错误,逻辑也未填充实际获取到的URL和文本值
可用实现代码
原生JS版本(无需依赖jQuery,Chrome控制台直接可用)
const resultList = [] // 模糊匹配所有style属性包含text-decoration:none的a标签 document.querySelectorAll('a[style*="text-decoration:none"]').forEach(targetA => { // 提取href属性值作为URL const linkUrl = targetA.getAttribute('href') // 处理文本:去除多余空白、换行,提取第一个有效文本"Tate Tea" const linkText = targetA.textContent.trim().split('\n')[0].trim() // 按要求格式存入数组 resultList.push([linkUrl, linkText]) }) // 控制台打印结果验证 console.log(resultList)
jQuery版本(对应原有写法的修复版)
const resultList = [] $('a[style*="text-decoration:none"]').each(function() { const linkUrl = $(this).attr('href') const linkText = $(this).text().trim().split('\n')[0].trim() resultList.push([linkUrl, linkText]) }) console.log(resultList)
结果验证
运行后resultList的结构和要求的完全匹配,每一项为['Tate-Tea.com','Tate Tea']的格式,总共包含10条对应的数据。
内容的提问来源于stack exchange,提问作者user1217917
相关产品推荐
相关产品推荐

