繁体   English   中英

如何在Jquery中选择随机文本框?

[英]How to select random textboxes in Jquery?

我说过,标签<textarea> 5个文本框。 如何随机选择50%的文本框? 每个文本框都有一个不同的ID。 例如:

<textarea id = "text1" name= "name1"></textarea>
<textarea id = "text2" name= "name2"></textarea>
<textarea id = "text3" name= "name3"></textarea>
<textarea id = "text4" name= "name4"></textarea>
<textarea id = "text5" name= "name5"></textarea>

我可以在ID上使用某种随机函数吗?

使用Math.random()方法生成随机索引。

 // get all textarea eleemnts as an array var $t = $('textarea[id^="text"]').get(); // iterate upto half length for (var i = 0, len = $t.length / 2; i < len; i++) { // generate random index and remove it from collection // where element can be remove using splice method // and which returns an array of removed elements // get the elment from that array and update the value or do whatever you are trying to achieve $t.splice(Math.floor(Math.random() * $t.length), 1)[0].value = i; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <textarea id="text1" name="name1"></textarea> <textarea id="text2" name="name2"></textarea> <textarea id="text3" name="name3"></textarea> <textarea id="text4" name="name4"></textarea> <textarea id="text5" name="name5"></textarea> 

查看如何从数组中随机获取n个元素的有效方法,以便从数组中选择n随机元素(这将返回唯一元素)。 调整此解决方案,您可以执行以下操作:

 // https://stackoverflow.com/questions/19269545/how-to-get-n-no-elements-randomly-from-an-array function getRandom(arr, n) { var result = new Array(n), len = arr.length, taken = new Array(len); if (n > len) throw new RangeError("getRandom: more elements taken than available"); while (n--) { var x = Math.floor(Math.random() * len); result[n] = arr[x in taken ? taken[x] : x]; taken[x] = --len; } return result; } var textareas = $('textarea'); var randomTextareas = getRandom(textareas, textareas.length / 2); randomTextareas.forEach(function(textArea) { $(textArea).prop('value', 'hello'); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <textarea id="text1" name= "name1"></textarea> <textarea id="text2" name= "name2"></textarea> <textarea id="text3" name= "name3"></textarea> <textarea id="text4" name= "name4"></textarea> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM