簡體   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