jQuery:.append()+用<textarea>中的随机数替换文本?

时间:2017-07-11 05:30:31

标签: javascript jquery random

&lt; p&gt;&lt; strong&gt;简化简介:&lt; / strong&gt;我试图将文本追加到已经填充的元素中,而不会弄乱它,其中附加文本也是每个页面加载的随机数。&lt; / p&gt; &lt; p&gt;&lt; strong&gt;第一期:&lt; / strong&gt;我已经弄清楚如何在元素中附加文本,但我似乎无法弄清楚如何将附加文本更改为元素中的随机数。我已经想出了一些方法可以在标准或元素的元素中做到这一点,但是根据我的理解,将元素添加到一个不正确的元素中。&lt; / p&gt; &LT; p为H. HTML:其中/ p为H. &lt; pre&gt;&lt; code&gt;&lt; textarea id =&#34; status&#34;&gt; test https://twitter.com/test</textarea> &LT; /代码&GT;&LT; /预&GT; &lt; p&gt;经过测试的网页网址: &lt; a href =&#34; https://twitter.com/intent/tweet? url =&amp; text = test%20https://twitter.com/test& original_referer =&#34; rel =&#34; nofollow noreferrer&#34;&gt; https://twitter.com/intent/tweet?......&lt; / a&gt;&lt; / p&gt; &lt; p&gt; .Append()使用的代码:&lt; / p&gt; &lt; pre&gt;&lt; code&gt;函数callback(){     $(&#34; #status&#34;)。追加(&#39; aaa&#39;); }; $(document).ready(function(){     window.setTimeout(callback,100); }); &LT; /代码&GT;&LT; /预&GT; &lt; p&gt;&lt; strong&gt;第二个问题:&lt; / strong&gt;所以我发现了一些更好的代码,我会在不基于的情况下使用(&lt; strong&gt;在下面的链接&lt; / strong&gt;中),它可能是我寻求的最佳解决方案,但是它的功能在点击时运行,我希望每次页面加载时运行;将附加文本替换为随机数,而不是基于点击事件方法。&lt; / p&gt; &lt; p&gt;我想要发生什么:&lt; / p&gt; &lt; pre&gt;&lt; code&gt;&lt; textarea id =&#34; status&#34;&gt; test https://twitter.com/test 798&lt; / textarea&gt; &LT; /代码&GT;&LT; /预&GT; &lt; p&gt;脚注:排除&#34;&gt;之间的随机数的文本... 798&lt;&#34;,假设与用户输入的内容是随机的。&lt; / p&gt; &lt; p&gt;&lt; a href =&#34; http://jsfiddle.net/h5u5b1wk/1/" rel =&#34; nofollow noreferrer&#34;&gt;沙箱小提琴代码&lt; / a&gt;&lt; / p&gt;

5 个答案:

答案 0 :(得分:0)

如果你想要做的就是在页面加载时向textarea添加一个随机数,你可以这样做:

$(document).ready(function () {
   function callback() {
     $("#status").append(randomNumberFromRange(100, 999));
   };

   function randomNumberFromRange(min, max) {
      return Math.floor(Math.random() * (max - min + 1)) + min;
   }
   callback();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea id="status">test https://twitter.com/test</textarea>

答案 1 :(得分:0)

您需要一些数学方法,例如Math.randomparseInt() ...
你可以这样使用它们。

注意-1循环,确保100到999之间的随机数 ;)

&#13;
&#13;
while
&#13;
$(document).ready(function () {
  var randomNumber = 0;
  while(randomNumber<101 || randomNumber>1000){     // This while loop ensures a number within ranges
    randomNumber = parseInt(Math.random()*1000);
  }
  $("#status").append(" "+randomNumber);
});
&#13;
textarea{
  width:20em;
}
&#13;
&#13;
&#13;

答案 2 :(得分:0)

检查此链接

https://jsfiddle.net/Harsh80016/7rku8ao3/

var minNumber = 100;
var maxNumber = 40

var randomNumber = randomNumberFromRange(minNumber, maxNumber);

function randomNumberFromRange(min,max)
{
    return Math.floor(Math.random()*(max-min+1)+min);
}

你的代码几乎没有变化,我随机编号附加到你的textarea。

答案 3 :(得分:0)

如果您只需要将随机数附加到textarea中的预先存在的文字,则以下代码将有效:

<textarea id="test">Existing text</textarea>
<script>
    var minNumber = 100;
    var maxNumber = 999;

    $(function() {
        $("#test").append(" " + randomNumber(minNumber, maxNumber));
    });

    function randomNumber(min, max) {
        var number = (Math.floor(Math.random() * (max - min + 1) + min));
        return number;
    }
</script>

小提琴: https://jsfiddle.net/fzfmevhk/

答案 4 :(得分:0)

这可能会有所帮助

$(document).ready(function() {
	var randomNum = '',
		numLimitation = "123456789";
	for(var i = 0; i < 3; i++) {
		randomNum = randomNum + numLimitation.charAt(Math.floor(Math.random() * numLimitation.length));
	}
	$('textarea').append(randomNum);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea rows="5" cols="50">
test https://twitter.com/test
</textarea>

正如您所评论的,此代码段采用的是setInterval()方法。

$(document).ready(function() {
	setInterval(function() {
		var randomNum = '',
			numLimitation = "123456789";
		for(var i = 0; i < 3; i++) {
			randomNum = randomNum + numLimitation.charAt(Math.floor(Math.random() * numLimitation.length));
		}
		$('textarea').text('test https://twitter.com/test' + ' ' + randomNum);
	}, 3000)
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea rows="5" cols="100">
  test https://twitter.com/test
</textarea>