gpt4 book ai didi

javascript - 重新排序单选按钮

转载 作者:搜寻专家 更新时间:2023-10-31 08:40:23 26 4
gpt4 key购买 nike

我有一个有两个单选按钮的调查,点击后会提交并发送到感谢页面,然后重定向回调查,我的问题是如何让单选按钮在位置上随机化,但我似乎无法让它工作,我的 jquery 有问题吗

<!DOCTYPE html>
<html>
<head>
<title>survey</title>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="test7.css">
<meta name="viewport" content="width=device-width, initial-scale=1" />
</head>
<script>
var cc-selector = $("#cc-selector");

cc-selector.html(
cc-selector.find("label").sort(function(){
return Math.round(Math.random())-0.5;
})
);
</script>
<body>
<div id="wrapper">
<header>

<img src="Win.png" alt="Logo" class="Logo">

<img src="Screw.jpg" alt="screwLogo" class="screwLogo">



<h1 class="Survey_Title">Heath and Wellbeing</h1><br>
<h2 class="Survey_Question">Did you find the most recent Wellbeing campaign useful?</h2><br>

<form action="" method="post">

<div class="cc-selector">
<label>
<input id="happy" type="radio" name="radAnswer" value="happy" onclick="window.location='test6.html';" />
<label class="drinkcard-cc happy" for="happy"></label>
</label>

<label>
<input id="sad" type="radio" name="radAnswer" value="sad" onclick="window.location='test6.html';" />
<label class="drinkcard-cc sad"for="sad"></label>
</label>

</div>
</form>


</header>
</div>
</body>
</html>

最佳答案

随机移动 label 的想法s真的很好。
但是你遇到了这些问题:

  1. 你的主要问题是变量 cc - selector不正确。 (变量名只能包含字母、数字、下划线和美元符号。)
  2. cc-selectorclass ,不是 id , 所以你需要选择 .cc-selector , 不是 #cc-selector .
  3. 因为有label在你的label s,您只想定位 cc-selector 的直接子代.我建议你使用 .children()相反。
  4. 您没有包含 jQuery 库,例如:
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

请注意,要随机化数组中的元素顺序,我们需要 .sort(function{…})返回一个随机的数字 <0 , 0 , >0 , 所以 return (Math.random() - 0.5);涵盖了我们所有的需求。

⋅⋅⋅

这是根据您的代码制作的一个有效的简化片段:
(我删除了一些 HTML 以获得更短的代码段)

$(".cc-selector").html(
// $(".cc-selector > label").sort(function() { // What you wanted to do
$(".cc-selector").children().sort(function() { // What I propose you
return (Math.random() - 0.5); // No need to use 'round()'
})
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>(I added texts to see the values. Run the code multiple times to see it moving!)</p>
<div class="cc-selector">
<label>
<input id="happy" type="radio" name="radAnswer" value="happy" onclick="window.location='test6.html';" />
<label class="drinkcard-cc happy" for="happy">Happy</label>
</label>
<label>
<input id="sad" type="radio" name="radAnswer" value="sad" onclick="window.location='test6.html';" />
<label class="drinkcard-cc sad"for="sad">Sad</label>
</label>
</div>

⋅⋅⋅

然后,您可以对更多标签执行相同操作:

$(".cc-selector").each(function() {
$(this).html(
$(this).children().sort(function() {
return (Math.random() - 0.5);
})
);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>(Same… with more texts!)</p>
<div class="cc-selector">
<label>
<input type="radio" name="radAnswer" value="vhappy" />
<label for="vhappy">Very happy</label>
</label>
<label>
<input type="radio" name="radAnswer" value="happy" />
<label for="happy">Happy</label>
</label>
<label>
<input type="radio" name="radAnswer" value="sad" />
<label for="sad">Sad</label>
</label>
<label>
<input type="radio" name="radAnswer" value="vsad" />
<label for="vsad">Very sad</label>
</label>
</div>
<p>(… and again!)</p>
<div class="cc-selector">
<label>
<input type="radio" name="radAnswer" value="vhappy" />
<label for="vhappy">Very happy</label>
</label>
<label>
<input type="radio" name="radAnswer" value="happy" />
<label for="happy">Happy</label>
</label>
<label>
<input type="radio" name="radAnswer" value="sad" />
<label for="sad">Sad</label>
</label>
<label>
<input type="radio" name="radAnswer" value="vsad" />
<label for="vsad">Very sad</label>
</label>
</div>

希望对您有所帮助!

关于javascript - 重新排序单选按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50467471/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com