ZBLOG

Cheerio Browser Demo let str = `

在你的代码中,$html 已经是一个 jQuery 对象,它直接代表 <a> 元素本身。当你调用 $html.find('a') 时,实际上是在 <a> 元素内部查找 <a> 子元素(这显然不存在),所以返回空集合导致 .attr('href')undefined

正确写法:

  1. 直接获取属性(因为 $html 已经是 <a> 元素):

    console.log($html.attr('href')); 
    
  2. 如果坚持用 find(虽然不必要): 需要先包装成父元素再查找:

    const $wrapper = $('<div>').append(str); // 包装成父元素
    console.log($wrapper.find('a').attr('href'));
    

原因解析:

  • $(str) 会直接将字符串解析为 DOM 元素,此时 $html 就是 <a> 对象。
  • .find() 只在当前元素的子节点中查找,而你的 <a> 没有子节点。

修正后的完整代码:

<script>
    let str = `<a url_type="" class="J_menuItem" href="https://10.8.87.73:9876/backstage/workflow/flowRun/myAllJobsList?menu=25389880aa664d8ab08d308c094256a3&amp;GratuitousProxy=c1a516fc7f385b92a23305733f31b2a0" data-index="5" style="color: rgb(94, 95, 97);">所有工单</a>`;
    const $html = $(str);
    console.log($html.attr('href')); // ✅直接获取属性
</script>

输出结果会是: https://10.8.87.73:9876/backstage/workflow/flowRun/myAllJobsList?menu=25389880aa664d8ab08d308c094256a3&GratuitousProxy=c1a516fc7f385b92a23305733f31b2a0


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://sdn.0voice.com/?id=8029

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?