一、问题说明

我通过模拟登录,获取到页面的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 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐