作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 javascript/jquery 的新手,我可能不知道许多可以帮助我解决问题的函数,因为我对 javascript 和 jquery 有非常基本的了解。而我正在做的项目只是为了练习。
因此,我有一个字符串想要与某些值进行比较,并且可能存在三个不同的值,这些值相互详尽。
$(".grid-item").click(function() {
var classname = $(this).attr('class');
console.log(classname); //This returns "grid-item active car-right"
var reg_class = /active checked booked/;
var what_class = classname.match(reg_class);
$(this).toggle_function(){
if(what_class == active){
}
if(what_class == checked){
}
if(what_class == booked){
}
}
});
但这不起作用,因为 match 函数将 reg_class 变量的值整体作为字符串进行比较,而 classname 变量中没有类似的内容。
我查看了这个答案,“Compare one String with multiple values in one expression”。但我无法在那里解决我的问题。
那么,如何创建一个具有三个不同可能值的正则表达式变量,然后将其与变量类名中的值进行比较。
有没有办法可以这样比较:(if classname == %active%)........这可能看起来很荒谬,但是,我不知道这是否可以在 javascript 中完成。
最佳答案
我认为在你的情况下更好的解决方案是使用 jQuery 的 .hasClass()
致力于此:
$(function() {
$('.grid-item').on('click', function (e) {
if ($(this).hasClass('active')) {
console.log('active');
}
if ($(this).hasClass('checked')) {
console.log('checked');
}
if ($(this).hasClass('booked')) {
console.log('booked');
}
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="grid-item checked booked somethingelse">click me</div>
关于javascript - 如何将多个可能的正则表达式值与给定字符串进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55156544/
我是一名优秀的程序员,十分优秀!