【Jave】Java解析html页面的元素Element——获取下拉框中的值和文本selected-option
element
A Vue.js 2.0 UI Toolkit for Web
项目地址:https://gitcode.com/gh_mirrors/eleme/element
免费下载资源
·
一、问题说明
我通过模拟登录,获取到页面的Document类对象,然后要拿出里面需要的数据;
二、代码说明
比如,我有一个html中的下拉框代码,我要获取选中的项(option),怎么取?
下面是一个select元素(Element),如何通过Java获取里面的值,尤其是选中值和文本?
源代码:
Element HYS = doc.getElementById("cellId22select");//会议室
List<Element> HYSOptionList=HYS.select("option");
for (Element HYSOption:HYSOptionList){
if (0!=HYSOption.getElementsByAttribute ("selected").size()){
conference.setHYS(HYSOption.text());
}
}
说明:
1、getElementById()方法是通过标签(element)来获取整个标签;因为在一个html文件中,id是不允许重复的,(脑洞大一点,可以类比数据库的主键),所以是精确获取;
2、select()方法是通过option标签名来获取标签,这里针对的是没有id的一些标签;非精确的拿,因为select下面的选项(option)不止一个,所以得到的是一个数组;
3、遍历选项(option)数组,找到选中的那一项;选中项会多一个selected属性;这里我们使用的是getElementsByAttribute()方法来获取那个元素;判断其长度不为0,则就是我们要找到的option;这里getElementsByAttribute()源代码如下:
public Elements getElementsByAttribute(String key) {
Validate.notEmpty(key);
key = key.trim();
return Collector.collect(new Attribute(key), this);
}
我们可以看到,返回值是Elements实体类(注意结尾有s);这里使用了验证-非空判断,和trim()去掉左右的空格判断;返回值是装载集合里面的;所以,上面判断用的是集合size()大小;我们区分length()和size()可以这样记,length是数组的长度,跟英语本意长度结合;size是集合大小,跟英语本意大小结合;
4、元素(Element)的具体对象有两个方法:
- val()方法,获取的是元素的value,这里我们叫值;
- text()方法,获取的是元素的显示文本,为什么叫显示文本呢?因为他是裸露在html上,标签之外的;
举例如下:
<option value="3">三</option>
- 如果用val()方法,拿到的值是“3”;
- 如果用text()方法,拿到的文本是“三”;
对比,一目了然;
**
欢迎大家订阅我的微信公众号:
【幕桥社区】,我是张牧野菌,我在幕桥社区等你~
**
GitHub 加速计划 / eleme / element
54.06 K
14.63 K
下载
A Vue.js 2.0 UI Toolkit for Web
最近提交(Master分支:3 个月前 )
c345bb45
7 个月前
a07f3a59
* Update transition.md
* Update table.md
* Update transition.md
* Update table.md
* Update transition.md
* Update table.md
* Update table.md
* Update transition.md
* Update popover.md 7 个月前
更多推荐
已为社区贡献8条内容
所有评论(0)