如何在jQuery中重写此javascript?
我有一个javascript生成一些随机字符串,我想在jQuery中重写:如何在jQuery中重写此javascript?,javascript,jquery,Javascript,Jquery,我有一个javascript生成一些随机字符串,我想在jQuery中重写: function randomString() { var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz!@#$%^&*()_+"; var string_length = 8; var randomStr = ''; for (var i=0; i<
function randomString() {
var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz!@#$%^&*()_+";
var string_length = 8;
var randomStr = '';
for (var i=0; i<string_length; i++) {
var rnum = Math.floor(Math.random() * chars.length);
randomStr += chars.substring(rnum,rnum+1);
}
document.getElementById('randomfield').innerHTML=randomStr;
}
函数randomString(){
var chars=“0123456789abcdefghijklmnopqrstuvwxtzabcdfghiklmnopqrstuvwxyz!@$%^&*()“;
变量字符串长度=8;
var randomStr='';
对于(var i=0;iFirst things First:jQuery是javascript,因此无需重写。重写函数的原因是为了使其更易于重用:
// Instead of apply a random string value to a specific DOM element
// .. create a random string and return its value
function getRandomString() {
var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz!@#$%^&*()_+";
var string_length = 8;
var randomStr = '';
for (var i=0; i<string_length; i++) {
var rnum = Math.floor(Math.random() * chars.length);
randomStr += chars.substring(rnum,rnum+1);
}
return randomStr;
}
// Quite useful, because we can now use it whenever we want.
// For example use it within a click handler function:
$('#button').on('click', function () {
$('#randomfield').text(getRandomString());
});
//而不是对特定DOM元素应用随机字符串值
//..创建一个随机字符串并返回其值
函数getRandomString(){
var chars=“0123456789abcdefghijklmnopqrstuvwxtzabcdfghiklmnopqrstuvwxyz!@$%^&*()“;
变量字符串长度=8;
var randomStr='';
对于(var i=0;i基于您的命令,您希望使用所单击内容的引用。因此,调用该函数
$('.className').click(randomString);
它会将其设置为对象,因此在randomString中可以使用$(this.text(randomStr);
函数randomString(){
var chars=“0123456789abcdefghijklmnopqrstuvwxtzabcdfghiklmnopqrstuvwxyz!@$%^&*()“;
变量字符串长度=8;
var randomStr='';
for(var i=0;i小部件工厂允许您添加jQuery函数;它看起来像这样
$.widget('nt.randomString', {
var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz!@#$%^&*()_+";
var string_length = 8;
var randomStr = '';
for (var i=0; i<string_length; i++) {
var rnum = Math.floor(Math.random() * chars.length);
randomStr += chars.substring(rnum,rnum+1);
});
$("#randomfield").randomString.text()
$.widget('nt.randomString'{
var chars=“0123456789abcdefghijklmnopqrstuvwxtzabcdfghiklmnopqrstuvwxyz!@$%^&*()“;
变量字符串长度=8;
var randomStr='';
对于(var i=0;iWhy)…..?请分享您尝试过的内容。jquery没有任何字符串操作,因此唯一会更改的行是倒数第二行。@KevinB,它可能是一个返回
语句,而不是引起副作用。@NiettheDarkAbsol$('#randomfield').html(randomStr);
:)OP显然没有问这个问题,阅读他的问题。这并没有降低它的有用性;我已经重写了代码(您可以立即看到为什么重写是有用的)我重新阅读了这个问题,认为这是一个有效的答案。对于没有经验的用户,一点解释可以让他们更容易理解。尽管如此,我还是加了+1。他现在更改了答案,看起来不像是有效的javascript…缺少了一些东西。你也可以构建自己的链接API。谢谢,这很有效。我用$('.key')替换了$(这个)我希望字符串出现在哪个div中,它工作得很好。
$.widget('nt.randomString', {
var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz!@#$%^&*()_+";
var string_length = 8;
var randomStr = '';
for (var i=0; i<string_length; i++) {
var rnum = Math.floor(Math.random() * chars.length);
randomStr += chars.substring(rnum,rnum+1);
});
$("#randomfield").randomString.text()