select的奇葩操作总结

在这里插入图片描述
摘要:

世界奇葩事千千万,select操作占一半!最近原生开发中遇到一些问题,特别是select!

select原生实现二级树:
php的twig下实现占位符号错位实现

<select name="category_id" id="input-category" class="form-select mb-1"><option value="0">{{ text_category }}</option>{% for category_1 in categories %}<option value="{{ category_1.category_id }}"{% if category_1.category_id == category_id %} selected{% endif %}>{{ category_1.name }}</option>{% for category_2 in category_1.children %}<option value="{{ category_2.category_id }}"{% if category_2.category_id == category_id %} selected{% endif %}>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{ category_2.name }}</option>{% endfor %}{% endfor %}
</select>

但是会有选中的值有空格,一开始是写common.js实现清除空格符号,但是select的底层是把整个option给抛回来了,所以这种占位符实现不了的!

$(document).ready(function () {debugger$("select").change(function () {var str = "";$("select option:selected").first().each(function () {str = $(this).text().replace(/^\s+|\s+$/g, '');});this.text = str;debugger});
});

但是select的optgroup有天生的分组功能:

<select name="category_id" id="input-category" class="form-select mb-1"><option value="0">{{ text_category }}</option>{% for category_1 in categories %}<option value="{{ category_1.category_id }}"{% if category_1.category_id == category_id %} selected{% endif %}>{{ category_1.name }}</option><optgroup>{% for category_2 in category_1.children %}<option value="{{ category_2.category_id }}"{% if category_2.category_id == category_id %} selected{% endif %}>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{ category_2.name }}</option>{% endfor %}</optgroup>{% endfor %}
</select>

但是又有问题了:如果是多级的话?二级以上的,就只能第一种实现的,但是选中有空格。所以如果有二级以上的只能,试了一下给option添加padding-left或者margin-left,但是他们无动于衷,原生是option底层的css的规则给限制了!
但是可以自己封装一个select的组件!

<!doctype html>
<html lang="zh">
<head><meta charset="UTF-8"><title>Select</title><style>.select-container {position: relative;}.select-container input {width: 240px;height: 24px;margin-top: 15px;line-height: 24px;text-indent: 5px;}.select-container span {/* 定位至 input 尾部 */position: absolute;top: 20px;left: 220px;/* 屏蔽点击事件 */pointer-events: none;}.select-container ul {/* 定位至 input 下面 */position: absolute;top: 28px;left: 0px;padding: 0;/* 显示在 input 上面 */z-index: 1;width: 242px;/* 默认隐藏 */display: none;list-style: none;/* 边框 */border: 1px solid #007ACC;}.select-container li a {/* 使背景色占满一行 */display: inline-block;width: 100%;color: #000000;text-indent: 5px;/* 默认背景色 */background: #fff;/* 去掉下划线 */text-decoration: none;}.select-container li a:hover {color: #fff;background: #1F92E4;}</style>
</head>
<body><div class="select-container"><span></span><input type="text" readonly="readonly" onfocus="this.nextSibling.nextSibling.style.display='block';"onblur="var t=this;setTimeout(()=>{t.nextSibling.nextSibling.style.display='none';},150);" /><ul><li onclick="this.parentNode.previousSibling.previousSibling.value=this.innerText;"><a href="http://www.baidu.com" target="_blank">测试1</a></li><li onclick="this.parentNode.previousSibling.previousSibling.value=this.innerText;"><a href="javascript:;">测试2</a></li><li onclick="this.parentNode.previousSibling.previousSibling.value=this.innerText;"><a href="javascript:;">测试3</a></li><li onclick="this.parentNode.previousSibling.previousSibling.value=this.innerText;"><a href="javascript:;">测试4</a></li></ul></div><div class="select-container"><span></span><input type="text" readonly="readonly" onfocus="this.nextSibling.nextSibling.style.display='block';"onblur="var t=this;setTimeout(()=>{t.nextSibling.nextSibling.style.display='none';},150);" /><ul><li onclick="this.parentNode.previousSibling.previousSibling.value=this.innerText;"><a href="http://www.baidu.com" target="_blank">测试1</a></li><li onclick="this.parentNode.previousSibling.previousSibling.value=this.innerText;"><a href="javascript:;">测试2</a></li><li onclick="this.parentNode.previousSibling.previousSibling.value=this.innerText;"><a href="javascript:;">测试3</a></li><li onclick="this.parentNode.previousSibling.previousSibling.value=this.innerText;"><a href="javascript:;">测试4</a></li></ul></div>
</body>
<script>window.onload = function () {var list = document.getElementsByClassName('select-container');for (var i = 0; i < list.length; i++) {list[i].children[1].value = list[i].children[2].children[0].innerText.trim();}}
</script>
</html>

改变select里option悬停时的背景样式:

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title><script src="https://cdn.staticfile.net/jquery/1.10.2/jquery.min.js"></script><style>select:focus option:checked{color: white;background-image: linear-gradient(red,red);}option:hover {color: #fff;background-color: palevioletred;}</style></head><body><select multiple="multiple"><option>111111</option><option>222222</option><option>333333</option><option>444444</option><option>555555</option></select></body><script>$(document).ready(function () {});</script>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/30868.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

珈和科技和比昂科技达成战略合作,共创智慧农业领域新篇章

6月14日&#xff0c;四川省水稻、茶叶病虫害监测预警与绿色防控培训班在成都蒲江举办。本次培训班由四川省农业农村厅植物保护站主办&#xff0c;蒲江县农业农村局、成都比昂科技筹办。四川省农业农村厅植物保护站及四川省14个市州36个县植保站负责人进行了观摩学习。 武汉珈…

R3CTF NinjaClub复现

R3CTF NinjaClub jinjia2沙箱 题目源码 from jinja2.sandbox import SandboxedEnvironment, is_internal_attribute from jinja2.exceptions import UndefinedError from fastapi import FastAPI, Form from fastapi.responses import HTMLResponse from pydantic import Bas…

商超便利店收银系统源码推荐

细节决定成败&#xff0c;无论是做什么事情都要注重细节&#xff0c;让我们来看看关于商超便利店陈列的“细节”有哪些需要注意的地方。 首先要注意商品不要摆太高&#xff0c;放在适当位置即可&#xff01; 商超便利店内&#xff0c;销量最佳的物品摆放位置依次为与顾客视线…

卡巴斯基安全卡片

卡巴斯基委托我们制作展示各种安全场景的插图卡片&#xff0c;这些卡片用于在欧洲委员会支持下开发的互动在线培训课程。我们的设计师为这个项目创造了一种独特的风格&#xff0c;既美观又实用。卡片展示了可能出现的潜在危险情况&#xff0c;例如在购物中心、公交车站或办公室…

2004年上半年软件设计师【下午题】试题及答案

文章目录 2004年上半年软件设计师下午题--试题2004年上半年软件设计师下午题--答案2004年上半年软件设计师下午题–试题

若依 Excel导入 字段值转换 字典自动匹配转换等

Excel表格数据截图&#xff1a; 数据库结构&#xff1a;需要将数据转换为数值或char类型存储 转换结果&#xff1a; 未使用Excel注解参数的效果&#xff1a; 断点数据 使用Excel注解参数的效果&#xff1a; 断点数据 最终入库&#xff1a; 参考&#xff1a; http://doc.ru…

华为Pocket 2,夏日达人的时尚新宠!

夏天炎炎&#xff0c;适合撒欢~但时尚与便利从不缺席&#xff01;我的时尚新宠华为Pocket 2跟我一起。 高颜值的外观一定是出行拍照和搭配单品的选项&#xff0c;这款小巧精致的手机&#xff0c;外屏设计超级时尚,轻松搭配出夏日潮流风。它的外屏还支持个性化设置&#xff0c;…

0613,基本数据类型,表达式

目录 第三章&#xff08;基本数据类型&#xff09;思维导图 题目1&#xff0c;选做&#xff1a;0xCAFE的各种位运算 答案代码/补&#xff1a; 参考答案&#xff1a; 题目二&#xff0c;必做&#xff1a;判断闰年&#xff0c;下一天&#xff0c;两天时差&#xff0c;星期几…

红队实战宝典之内网渗透测试

本文源自《红队实战宝典之内网渗透测试》一书前言。 近年来&#xff0c;随着计算机网络技术的发展和应用范围的扩大&#xff0c;不同结构、不同规模的局域网和广域网迅速遍及全球。 以互联网为代表的计算机网络技术在短短几十年内经历了从0到1、从简单到复杂的飞速发展&#…

STM32单片机-PWR电源控制和WDG看门狗

STM32单片机-PWR电源控制和WDG看门狗 一、PWR简介二、低功耗模式三、修改主频&睡眠模式&停机模式&待机模式3.1 修改主频3.2 睡眠模式3.3 停机模式3.4 待机模式 四、WDG简介4.1 独立看门狗原理4.2 窗口看门狗原理4.3 IWDG和WWDG对比 五、独立看门狗&窗口看门狗5…

DrissionPage框架应用

DrissionPage框架应用 Scrapy框架可以自定义请求&#xff0c;我们经常使用的selenium,pypuppteer&#xff0c;playwight等模拟浏览器的环境执行网络的请求&#xff1b;但是以上都有被检测的风险&#xff0c;新晋浏览器防检测工具&#xff0c;不仅不需要繁琐的安装浏览器的内核&…

『大模型笔记』斯坦福大学教授李飞飞在2024年数据与人工智能峰会上的人工智能历史与未来

MAC 文章目录 一. 斯坦福大学教授李飞飞在2024年数据与人工智能峰会上的人工智能历史与未来引言过去与现在现代 AI 的进步未来的发展空间智能近期进展与未来展望文字输入制作视频机器人学习AI 与人类互动医疗健康应用结语二. 参考文献一. 斯坦福大学教授李飞飞在2024年数据与人…

全球AI视频技术竞赛加速:Runway即将推出更优更快的第三代AI视频模型|TodayAI

Runway即将在未来几天推出其更优更快的第三代AI视频模型&#xff0c;这是新一代模型中最小的一个。据公司透露&#xff0c;这款名为Gen-3的模型将带来“在真实度、一致性和动态效果上的重大提升”&#xff0c;同时在速度上也有显著的加快。 去年六月&#xff0c;Runway首次推出…

Mathtype与word字号对照+Mathtype与word字号对照

字体大小对照表如下 初号44pt 小初36pt 一号26pt 小一24pt 二号22pt 小二18pt 三号16pt 小三15pt 四号14pt 小四12pt 五号10.5pt 小五9pt 六号7.5pt 小六6.5pt 七号5.5pt 八号5pt 1 保存12pt文件 首选选择第一个公式&#xff0c;将其大小改为12pt 然后依次选择 “预置”—…

ClipArt ETC - 典雅的剪贴画网站

文章目录 ClipArt ETCClippix佛罗里达教学技术中心课堂数字内容 ClipArt ETC 网站地址&#xff1a; https://etc.usf.edu/clipart/ ClipArt ETC为学生和教师提供了超过71,500件高质量的教育剪贴画。 每个插图都有图像大小的选择以及学校项目中正确引用的完整源信息。 所有图像…

【Java】已解决java.sql.SQLRecoverableException异常

文章目录 一、分析问题背景二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项 已解决java.sql.SQLRecoverableException异常 在Java的数据库编程中&#xff0c;java.sql.SQLRecoverableException是一个重要的异常&#xff0c;它通常表示一个可以恢复的SQL异常。…

【扫雷游戏】C语言教程

Hi~&#xff01;这里是奋斗的小羊&#xff0c;很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~~ &#x1f4a5;&#x1f4a5;个人主页&#xff1a;奋斗的小羊 &#x1f4a5;&#x1f4a5;所属专栏&#xff1a;C语言 &#x1f680;本系列文章为个人学习…

低温环氧胶在指纹模组封装中的应用有哪些?

低温环氧胶在指纹模组封装中的应用有哪些&#xff1f; 低温环氧胶在指纹模组封装中的应用点主要包括以下几点&#xff1a; 金属环/框与FPC基板固定&#xff1a;低温固化环氧胶被推荐用于固定金属环或框到柔性印刷电路板(FPC)基板上&#xff0c;确保它们之间有稳固的连接。 传感…

国产数据库也开始堆砌功能了?试图在行业中炫技!

作者&#xff1a;IT邦德 中国DBA联盟(ACDU)成员&#xff0c;10余年DBA工作经验&#xff0c; Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主&#xff0c;全网粉丝10万 擅长主流Oracle、MySQL、PG、高斯及Greenplum备份恢复&#xff0c; 安装迁移&#xff0c;性能优化、故障…