试图查找包含然后匹配数字的属性
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了试图查找包含然后匹配数字的属性相关的知识,希望对你有一定的参考价值。
[试图查找包含“ 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>
答案
只有在launch-overlay-
之后出现,您才可以使用捕获组来获取叠加号:
var overlaynum = this.className.match(/launch-overlay-(\d+)/)[1];
// −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−^^^^^^^^^^^^^^^^^^^^ ^^^−−− capture group 1
请注意,因为它是第一个捕获组,所以我是通过[1]
而不是[0]
来获得数字的(我们不希望[0]
中的完全匹配)。
实时示例(我不得不在其中修复一些问题,但它们似乎与问题无关):
$('div[class*="launch-overlay-"]').click(function()
// Get the number from the relevant class
var overlaynum = this.className.match(/launch-overlay-(\d+)/)[1];
$('.overlay-container-'+overlaynum).addClass('-active');
);
.-active
color: blue;
font-weight: bold;
<div class="other-class launch-overlay-1 other">click me - I have another class</div>
<div class="other-class launch-overlay-2">click me</div>
<div class="overlay-container-1">overlay container 1</div>
<div class="overlay-container-2">overlay container 2</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
另一答案
您的代码存在问题,就是您没有选择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>
以上是关于试图查找包含然后匹配数字的属性的主要内容,如果未能解决你的问题,请参考以下文章
selenium js语法如何精准匹配去除readonly,其中页面包含多个input,然后在给value赋值2017-10-02