javascript - 获取具有多个选择器和一个类的 dom 元素的快捷方式?
问题描述
我想知道这样的东西是否存在,没有过滤器(我正在寻找快捷方式),使用jQuery的集合或本机querySelectorAll :
$('(select|input[type="text"]|textarea).myCssClass')
我想要所有带有myCssClass
css 类的选择、输入文本和文本区域。
我也试过不成功:
$('(select, input[type="text"], textarea).myCssClass')
请注意,我已经知道类似的事情:
$('form#myForm')
.find('select, input[type="text"], textarea')
.filter('.myCssClass')
.each(....)
想要的快捷方式——我会错过阅读 jQuery 文档的东西。
解决方案
没有这样的内置方法,但您可以轻松编写一个辅助函数,您可以向该函数传递一个与另一个选择器连接的选择器数组:
const combineSelectors = (applyToAll, arr) => arr
.map(str => str + applyToAll)
.join(',');
$(combineSelectors('.myCssClass', ['select', 'input[type="text"]', 'textarea']))
.each(function() {
$(this).css('background-color', 'blue');
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<textarea class="myCssClass"></textarea><br>
<input><br>
<input type="text"><br>
<input type="text" class="myCssClass">
推荐阅读
- android - roboletric 在运行任何测试之前不断抛出 java.lang.NullPointerException
- python - 在 Matplotlib 绘图中将轴的范围更改为非连续数字
- java - 关键响应者没有响应
- php - 如何从 Laravel Homestead 连接到远程数据库?
- javascript - appendChild(相同的常量)多次?
- python - 在 Python 中合并/变形对象并保留旧引用
- centos - 奇怪的 CentOS 权限错误 [Errno 13] Permission denied: '/var/lib/ckan/ (no solution works)
- google-chrome-devtools - 这些是什么 No beacon, Next in ... 在 Chrome 开发者控制台中记录消息
- sql - SQL :对于每个 Col1 组,返回具有 Max(Col3) 的 Col2 值
- python - 如何根据 column1 的值将 1 个数据帧拆分为两个数据帧