Javascript 如何为用户选择随机5 TR并显示?
如何随机选择5个问题并显示给用户 其他问题应隐藏在页面中,仅显示5个问题 我的示例代码,我想在用户加载页面时看到5个问题中的许多问题Javascript 如何为用户选择随机5 TR并显示?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,如何随机选择5个问题并显示给用户 其他问题应隐藏在页面中,仅显示5个问题 我的示例代码,我想在用户加载页面时看到5个问题中的许多问题 <form> <table> <tbody> <tr id="Tr0"> <td>Question 1: </td> <td><input type="radio"
<form>
<table>
<tbody>
<tr id="Tr0">
<td>Question 1: </td>
<td><input type="radio" value="True" /><input type="radio" value="False" /></td>
</tr>
<tr id="Tr1">
<td>Question 2: </td>
<td><input type="radio" value="True" /><input type="radio" value="False" /></td>
</tr>
<tr id="Tr2">
<td>Question 3: </td>
<td><input type="radio" value="True" /><input type="radio" value="False" /></td>
</tr>
<tr id="Tr3">
<td>Question 4: </td>
<td><input type="radio" value="True" /><input type="radio" value="False" /></td>
</tr>
<tr id="Tr4">
<td>Question 5: </td>
<td><input type="radio" value="True" /><input type="radio" value="False" /></td>
</tr>
<tr id="Tr5">
<td>Question 6: </td>
<td><input type="radio" value="True" /><input type="radio" value="False" /></td>
</tr>
<tr id="Tr6">
<td>Question 7: </td>
<td><input type="radio" value="True" /><input type="radio" value="False" /></td>
</tr>
<tr id="Tr7">
<td>Question 8: </td>
<td><input type="radio" value="True" /><input type="radio" value="False" /></td>
</tr>
<tr id="Tr8">
<td>Question 9: </td>
<td><input type="radio" value="True" /><input type="radio" value="False" /></td>
</tr>
<tr id="Tr9">
<td>Question 10: </td>
<td><input type="radio" value="True" /><input type="radio" value="False" /></td>
</tr>
</tbody>
</table>
</form>
问题1:
问题2:
问题3:
问题4:
问题5:
问题6:
问题7:
问题8:
问题9:
问题10:
//隐藏所有TR
$(“tr”).hide();
//确定问题的数量
var trLength=$(“tr”).length;
//在中创建具有此数字的数组
var numberArray=[];
对于(i=0;i保存所有数据,然后随机获取一个,代码如下:
var x = $('form tr')
function getRandomInt (min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
min = 0;
max = x.length;
var random_number = getRandomInt(0, x.length);
//you can get the random element by
x[random_number]
希望这有助于使用生成随机数,并用于显示问题
$('table tr').hide();
对于(变量i=0;i<5;i++){
$('table tr')。筛选器(':hidden')
.eq(Math.floor(Math.random()*(10-i)))
.show();
}
问题1:
问题2:
问题3:
问题4:
问题5:
问题6:
问题7:
问题8:
问题9:
问题10:
使用javascript随机生成器生成0到10之间的数字(例如x)
之后,使用jquery隐藏id=“TrX”的元素
存储已生成的号码
循环直到我们得到5个不同的数字
随机发生器代码:
Math.floor((Math.random() * 10)
大概是这样的:
var tr=$("table tr").get().sort(function(){
return Math.round(Math.random())-0.5;
}).slice(0,4);
$(tr).show();
说明:
<table id="tableQuestions">
<tbody>
<tr id="tr1"><td>Question 1</td></tr>
<tr id="tr2"><td>Question 2</td></tr>
<tr id="tr3"><td>Question 3</td></tr>
<tr id="tr4"><td>Question 4</td></tr>
<tr id="tr5"><td>Question 5</td></tr>
<tr id="tr6"><td>Question 6</td></tr>
<tr id="tr7"><td>Question 7</td></tr>
<tr id="tr8"><td>Question 8</td></tr>
</tbody>
</table>
1) 获取数组中的所有TR元素
2) 然后对它们进行随机排序
3) 选取n个元素
4) 给他们看
试试这个:
<html>
<head>
<style type="text/css">
tr {
display: none;
}
</style>
<script type="text/javascript">
function selFive(){
var idc=new Array(0,1,2,3,4,5,6,7,8,9);
for (var i = 0; i <5; i++) {
sel=Math.random()*idc.length;
left=idc.slice(0,sel);
right=idc.slice(sel+1,idc.length);
idc=left.concat(right);
};
for (var i = idc.length - 1; i >= 0; i--) {
document.getElementById('Tr'+idc[i]).style.display='table-row';
};
}
</script>
</head>
<body onload="selFive()">
<form>
<table>
<tbody>
<tr id="Tr0">
<td>Question 1: </td>
<td><input type="radio" value="True" /><input type="radio" value="False" /></td>
</tr>
<tr id="Tr1">
<td>Question 2: </td>
<td><input type="radio" value="True" /><input type="radio" value="False" /></td>
</tr>
<tr id="Tr2">
<td>Question 3: </td>
<td><input type="radio" value="True" /><input type="radio" value="False" /></td>
</tr>
<tr id="Tr3">
<td>Question 4: </td>
<td><input type="radio" value="True" /><input type="radio" value="False" /></td>
</tr>
<tr id="Tr4">
<td>Question 5: </td>
<td><input type="radio" value="True" /><input type="radio" value="False" /></td>
</tr>
<tr id="Tr5">
<td>Question 6: </td>
<td><input type="radio" value="True" /><input type="radio" value="False" /></td>
</tr>
<tr id="Tr6">
<td>Question 7: </td>
<td><input type="radio" value="True" /><input type="radio" value="False" /></td>
</tr>
<tr id="Tr7">
<td>Question 8: </td>
<td><input type="radio" value="True" /><input type="radio" value="False" /></td>
</tr>
<tr id="Tr8">
<td>Question 9: </td>
<td><input type="radio" value="True" /><input type="radio" value="False" /></td>
</tr>
<tr id="Tr9">
<td>Question 10: </td>
<td><input type="radio" value="True" /><input type="radio" value="False" /></td>
</tr>
</tbody>
</table>
</form>
</body>
</html>
tr{
显示:无;
}
函数selFive(){
var idc=新阵列(0,1,2,3,4,5,6,7,8,9);
对于(变量i=0;i=0;i--){
document.getElementById('Tr'+idc[i]).style.display='table-row';
};
}
问题1:
问题2:
问题3:
问题4:
问题5:
问题6:
问题7:
问题8:
问题9:
问题10:
看看下面的代码示例:
HTML:
<table id="tableQuestions">
<tbody>
<tr id="tr1"><td>Question 1</td></tr>
<tr id="tr2"><td>Question 2</td></tr>
<tr id="tr3"><td>Question 3</td></tr>
<tr id="tr4"><td>Question 4</td></tr>
<tr id="tr5"><td>Question 5</td></tr>
<tr id="tr6"><td>Question 6</td></tr>
<tr id="tr7"><td>Question 7</td></tr>
<tr id="tr8"><td>Question 8</td></tr>
</tbody>
</table>
问题1
问题2
问题3
问题4
问题5
问题6
问题7
问题8
JQuery
var generatedNumber;
$(document).ready(function() {
$('#tableQuestions tr').each(function () {
$(this).css('display','none');
});
generatedNumber = new Array();
for (var i = 1; i <= 5; i++) {
var n = getRandomArbitrary();
alert('#tr' + parseInt(n).toString());
$('#tr' + parseInt(n).toString()).css('display', '');
}
});
function getRandomArbitrary() {
var min = 1;
var max = 8;
var num = parseInt(Math.random() * (max - min) + min);
if (generatedNumber.indexOf(num) > 0) {
getRandomArbitrary(min, max);
}
return num ;
}
var生成数;
$(文档).ready(函数(){
$('#tableQuestions tr')。每个(函数(){
$(this.css('display','none');
});
generatedNumber=新数组();
对于(变量i=1;i 0){
获取随机数(最小值、最大值);
}
返回num;
}
尝试以下操作:使用Math.random
获取随机行数并使用索引隐藏
$(function(){
$('input[value="Shuffle"]').click(function(){
$('table tr').show();
var count = 0;
var array = [];
while(count<5)
{ var index = parseInt(Math.random(100)*10);
if(array.indexOf(index)<0)
{
array.push(index);
$('table tr:eq('+index+')').hide();
count++;
}
}
});
});
$(函数(){
$('input[value=“Shuffle”]”)。单击(函数(){
$('table tr').show();
var计数=0;
var数组=[];
虽然(你试过你这边的东西吗?你试过什么?你到底有什么问题?这个平台不是用来为你写代码的。@Arman:看看我的答案。希望它能帮助你解决你的问题。谢谢大家回答‘这不是重复的随机数吗?同一个问题你不能显示两次。哟你可以添加一个条件,将随机数保存在另一个数组中,并检查是否有人问过这个问题