You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将这段JavaScript代码改写为Android中Jsoup可用代码?

问题解决:将Chrome控制台JS代码转为Jsoup可用代码

原JS代码逻辑

原JS代码用于获取页面中第一个<ul>元素下的第3个<img>标签的alt属性值:

document.querySelector('ul').getElementsByTagName('img')[2].getAttribute('alt')

错误代码问题分析

你的改写代码存在两处核心问题:

  • doc.select("ul").tagName("img")用法错误,tagName()是获取元素标签名的方法,无法用来筛选子元素
  • getElementsByAttribute("alt")会返回所有带alt属性的元素集合,不是获取当前元素的alt属性值

正确的Jsoup实现代码

提供两种等价实现方式:

写法一:CSS选择器简洁写法

Document doc = Jsoup.connect(url).get();
// 直接通过选择器定位到ul下的第3个img(nth-child从1开始计数,对应原JS的索引2)
String altText = doc.select("ul img:nth-child(3)").attr("alt");

写法二:模拟JS链式调用逻辑

Document doc = Jsoup.connect(url).get();
// 完全对应原JS的步骤:取第一个ul → 取其下所有img → 取第3个 → 获取alt属性
String altText = doc.select("ul").first()
                   .getElementsByTag("img")
                   .get(2)
                   .attr("alt");

注意事项

  • 如果页面存在多个<ul>,doc.select("ul").first()和原JS的querySelector('ul')逻辑一致,只会取第一个<ul>
  • 若目标<img>是<ul>的后代而非直接子元素,两种写法都能正常匹配

内容的提问来源于stack exchange,提问作者Rishi Raj Dixit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 15:25:17