上一主题 下一主题
ScriptCat,新一代的脚本管理器脚本站,与全世界分享你的用户脚本油猴脚本开发指南教程目录
返回列表 发新帖

怎样获取到文本框下拉选项

[复制链接]

该用户从未签到

7

主题

17

回帖

32

积分

助理工程师

积分
32
发表于 2021-11-29 08:31:16 | 显示全部楼层 | 阅读模式
悬赏3油猫币已解决

网页 https://qpanpan.com/
账号123456
密码+Jp123456
登录后点发布商品,获取到商品分类·要求可以选到卫衣,李宁卫衣·点击保存无异常
其它空可以手填111
var aaq = document.querySelectorAll(".el-select-dropdown__item");
var aq = document.querySelectorAll(".el-input__inner");//获取所有文本框
for (let i = 0; i < aq.length; i++) {
    if (i == 2) {                                      //获取第二个文本框
        let aa = aq[i];
        const evt = new Event('input');
        aa.value = "卫衣";
        aa.dispatchEvent(evt);
    }

}
商品分类后那两个文本框是以ol列表形式存储,自己不会搞了,技术有限·请求大佬


最佳答案

查看完整内容

不是所有的元素都要触发input事件,像这种下拉框的找到目标元素后执行一次click操作就行了,至于如何找到目标元素,需要一些css基础,特别是这种没有id、class雷同的页面,用for循环一个个找的效率是很低的,建议参考https://www.w3school.com.cn/cssref/css_selectors.asp学习一下。这2个下拉框我帮你定位好了,你看看能不能理解: ...
  • TA的每日心情
    慵懒
    2022-3-8 11:41
  • 签到天数: 2 天

    [LV.1]初来乍到

    22

    主题

    881

    回帖

    1379

    积分

    荣誉开发者

    积分
    1379

    荣誉开发者卓越贡献油中2周年生态建设者油中3周年挑战者 lv2

    发表于 2021-11-29 08:31:17 | 显示全部楼层
    不是所有的元素都要触发input事件,像这种下拉框的找到目标元素后执行一次click操作就行了,至于如何找到目标元素,需要一些css基础,特别是这种没有id、class雷同的页面,用for循环一个个找的效率是很低的,建议参考https://www.w3school.com.cn/cssref/css_selectors.asp学习一下。这2个下拉框我帮你定位好了,你看看能不能理解:
    1. const select1 = document.querySelector('#basicGoods .el-form-item:nth-child(3) .el-col:nth-child(1) .el-select-dropdown'); //一级分类
    2. const select2 = document.querySelector('#basicGoods .el-form-item:nth-child(3) .el-col:nth-child(2) .el-select-dropdown'); //二级分类
    3. select1.querySelector('.el-select-dropdown__item:nth-child(5)').click();
    4. //这里要加一个延时,因为点击“卫衣”后才会出现“李宁卫衣”的选项
    5. setTimeout(() => {
    6.     select2.querySelector('.el-select-dropdown__item').click();
    7. }, 500);
    复制代码
    已有1人评分好评 油猫币 贡献 理由
    王一之 + 1 + 1 + 1 ggnb!

    查看全部评分 总评分:好评 +1  油猫币 +1  贡献 +1 

    回复

    使用道具 举报

    该用户从未签到

    7

    主题

    17

    回帖

    32

    积分

    助理工程师

    积分
    32
    发表于 2021-11-29 10:46:57 | 显示全部楼层
    cxxjackie 发表于 2021-11-29 09:40
    不是所有的元素都要触发input事件,像这种下拉框的找到目标元素后执行一次click操作就行了,至于如何找到目 ...

    看懂了,从定位元素开始一级一级往下写 nth-child()是找相同第几个元素
    触发事件直接找到目标运行
    感谢大佬,受益匪浅
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2022-3-8 11:41
  • 签到天数: 2 天

    [LV.1]初来乍到

    22

    主题

    881

    回帖

    1379

    积分

    荣誉开发者

    积分
    1379

    荣誉开发者卓越贡献油中2周年生态建设者油中3周年挑战者 lv2

    发表于 2021-11-29 11:43:44 | 显示全部楼层
    1433858005 发表于 2021-11-29 10:46
    看懂了,从定位元素开始一级一级往下写 nth-child()是找相同第几个元素
    触发事件直接找到目标运行
    感谢大 ...

    nth-child找的是子元素中的第几个,而不是符合规则的第几个,比如一排同名class中间穿插几个其他元素,在写nth-child的时候也要把这几个元素计算在内。
    回复

    使用道具 举报

    该用户从未签到

    7

    主题

    17

    回帖

    32

    积分

    助理工程师

    积分
    32
    发表于 2021-11-29 13:15:16 | 显示全部楼层
    cxxjackie 发表于 2021-11-29 11:43
    nth-child找的是子元素中的第几个,而不是符合规则的第几个,比如一排同名class中间穿插几个其他元素,在 ...

    学习了
    回复

    使用道具 举报

    发表回复

    本版积分规则

    快速回复 返回顶部 返回列表