jquery - 试图找到包含然后匹配数字的属性
问题描述
试图找到一个包含“launch-overlay-”的属性,所以即使之前和之后还有其他类,脚本仍然可以工作。找到后,将“活动”类添加到匹配号 div。这是我到目前为止所拥有的,但如果“启动覆盖”周围有其他课程,它就行不通了。><帮助请。
$('div[class*="overlay-"]').click(function(){
var overlaynum = $(this).attr('class').match(/\d+$/)[0];
$('.overlay-container-'+overlaynum).addClass('-active');
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class=“other-class overlay-1”>click me</div>
<div class=“other-class overlay-2”>click me</div>
<div class=“overlay-container-1”></div>
<div class=“overlay-container-2”></div>
解决方案
您的代码的问题是您没有选择 id,而是选择了整个匹配项。使用捕获组。
var overlaynum = $(this).attr('class').match(/overlay-1(\d+)/)[0];
但就我个人而言,我什至不会将 reg exp 与匹配的类一起使用。使用数据属性。
$("[data-toggles]").on("click", function () {
var selector = $(this).data("toggles")
$(selector).toggleClass("active")
})
.active {
background-color: yellow;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="other-class" data-toggles=".overlay-container-1">click me</div>
<div class="other-class" data-toggles=".overlay-container-2">click me</div>
<div class="overlay-container-1">X</div>
<div class="overlay-container-2">Y</div>
推荐阅读
- r - 如何使用 Shiny R 中的 downloadHandler 将多个 csv 文件下载到 zip 中
- html - 为 flexbox 列表设置固定间距
- dataframe - 将 Pyspark 数据帧写入 Hive 表 - 未定义名称“数据库”错误
- arrays - 如何将二维数组分配给固定语句中的指针
- excel - Notepad++ 或 Excel:转置两列,批量处理多个文件
- html - 除非指针移动到图像的下半部分,否则什么会阻止悬停文本(居中)出现在图像上?
- json - 使用jq找到密钥路径后如何打印所有内容?
- python - 从压缩表示转换张量的最佳方法
- mysql - AND 在同一字段的 WHERE 子句中?
- google-apps-script - 谷歌脚本重新格式化 getValues 结果