javascript - 生成一个随机类并在 jQuery 中使用正则表达式读取

标签 javascript jquery regex

所以我制作了这种小游戏。有 7 个开关可以在点击 toggleClass 'on' 时触发其他按钮,这是在 jQuery 中定义的。

目标是让所有按钮都处于“打开”状态。

问题是,您可以轻松地单击鼠标右键,选择 Inspect Element,添加“on”类并赢得游戏。

所以我需要让这些开关的类随机化。例如。 'on-214124712'、'on-307153821369' 或 'on-6471649031264'。但它们必须共享相同的前缀“on-”。

如何在每次点击时以不同方式生成它们?我如何仍然使用正则表达式切换类并检查它们的 hasClass?

HTML:

<h2>You clicked <span id="output">0</span> times</h2>
<div class="switches">
     <div id="switch1" class="switch"></div>
     <div id="switch2" class="switch on"></div>
     <div id="switch3" class="switch on"></div>
     <div id="switch4" class="switch"></div>
     <div id="switch5" class="switch on"></div>
     <div id="switch6" class="switch on"></div>
     <div id="switch7" class="switch"></div>
</div>

Javascript:

var count = 0;

$('.switch').click(function () {
    $('#output').html(function (i, val) {
        return val * 1 + 1
    });
});

$("#switch1").bind("click", function () {
    $(this).toggleClass("on");
    $('#switch3').toggleClass("on");
    $('#switch5').toggleClass("on");
    $('#switch6').toggleClass("on"); 
    count++;

});
$("#switch2").bind("click", function () {
    $(this).toggleClass("on");
    $('#switch1').toggleClass("on");
    $('#switch3').toggleClass("on");
    $('#switch7').toggleClass("on");
    count++;

});
$("#switch3").bind("click", function () {
    $(this).toggleClass("on");
    $('#switch2').toggleClass("on");
    $('#switch5').toggleClass("on");
    count++;

});
$("#switch4").bind("click", function () {
    $(this).toggleClass("on");
    //$('#switch1').toggleClass("on");
    $('#switch2').toggleClass("on");
    $('#switch5').toggleClass("on");
    count++;

});
$("#switch5").bind("click", function () {
    $(this).toggleClass("on");
    $('#switch1').toggleClass("on");
    $('#switch4').toggleClass("on");
    count++;

});
$("#switch6").bind("click", function () {
    $(this).toggleClass("on");
    $('#switch3').toggleClass("on");
    $('#switch5').toggleClass("on");
    $('#switch7').toggleClass("on");
    count++;

});
$("#switch7").bind("click", function () {
    $(this).toggleClass("on");
    $('#switch3').toggleClass("on");
    $('#switch4').toggleClass("on");
    count++;

});

$('.switches').click(function () {
    if ($("#switch1").hasClass("on") && $("#switch2").hasClass("on") &&   $("#switch3").hasClass("on") && $("#switch4").hasClass("on") && $("#switch5").hasClass("on") && $("#switch6").hasClass("on") && $("#switch7").hasClass("on")) {
        alert('Success!');
    }
});

谢谢!

最佳答案

更新

您可以使用此选择器来检查元素是否具有包含所需字符串的类(检查更新的演示):

$('.switch[class*=on-]').addClass('red');

每个具有包含 on 的类的 div 都会变红

$('.switch[class*=on-]').addClass('red');
.red { color:red }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="switches">
  <div id="switch1" class="switch">test</div>
  <div id="switch2" class="switch on-9876597856978">test</div>
  <div id="switch3" class="switch on-jhg675">test</div>
  <div id="switch4" class="switch">test</div>
  <div id="switch5" class="switch on-876uyg">test</div>
  <div id="switch6" class="switch on-kjhg76gt9">test</div>
  <div id="switch7" class="switch">test</div>
</div>

关于javascript - 生成一个随机类并在 jQuery 中使用正则表达式读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30074953/

相关文章:

javascript - Bootstrap 导航栏下 zipper 接在 Safari 中不起作用

javascript - Knockout.js 如何知道将 View 元素绑定(bind)到哪个模型?

javascript - 使用 flex/css 和 javascript 构建响应式 slider

jquery - 下划线每个方法返回值

javascript - Websockets 消息完整性

Javascript 从跨度中获取值

javascript - 如何使用 jQuery 禁用单击事件后发生的功能

regex - 解析不同列数的 HTML 表格

C#:通过检测空格从字符串中解析子字符串

mysql - 用于查找可能单词的正则表达式(拼字游戏风格)