在另一个随机值jQuery中插入随机值

Insert random value in another random value, jQuery

本文关键字:随机 插入 jQuery 另一个      更新时间:2023-09-26

让我首先告诉您,我是jQuery的新手,通常没有那么多编程经验。这是我第一次尝试真正学习这一点,因此,如果可能的话,我很乐意保持解释和解决方案的基本性。

我正在从随机的句子中生成一个完整的文本块。这很好用。然而,我希望能够将随机值插入另一个值中,以获得更多的"动态随机性"。例如,我想在其他随机变量中使用随机名称。

例如,我想从数组var Malsattning创建一个输出,该输出为:"我们的愿景是[从Var Foretagsnamn插入名称]对品牌树立积极的态度"我还希望保持从Var Foretagsnamn自己生成名称的能力(就像所有当前生成的单词/句子一样)。

这有点难以解释,所以我创建了一个jsFiddle供您研究以下代码是否不够;http://jsfiddle.net/lennyekberg/gFUxG/

/////////////////////////////
//   Foretagsnamn (Name)   //
/////////////////////////////
    var Foretagsnamn = [
    'Lisa',
    'Ann',
    'Matt',
    'Carl',
    'Sara',
    'Ron'
    ],
    //the current sentences length
    maxForetagsnamn = Foretagsnamn.length;
// get and return a random sentences from array
function getRandomForetagsnamn() {
    //calculate a random index
    var rndIdxForetagsnamn = Math.floor(Math.random()*(maxForetagsnamn));
    //return the random sentence
    return Foretagsnamn[rndIdxForetagsnamn];                        
}
//show a random sentences in a DOM selector
function showRandomForetagsnamn(selector){
  var randomForetagsnamn = getRandomForetagsnamn();  
  $(selector).html(randomForetagsnamn);
}

///////////////////////////////////////////////////
//   Foretagsbeskrivning (Workdescription)   //
///////////////////////////////////////////////////

var Foretagsbeskrivning = [
    'is an icecream vendor',
    'is a plumber',
    'organizes charity events',
    'build hybrid cars'
    ],
    //the current sentences length
    maxForetagsbeskrivning = Foretagsbeskrivning.length;  
//get and return a random sentences from array
function getRandomForetagsbeskrivning() {
    //calculate a random index
    var rndIdxForetagsbeskrivning = Math.floor(Math.random()*(maxForetagsbeskrivning));
    //return the random sentence
    return Foretagsbeskrivning[rndIdxForetagsbeskrivning];                        
}

//show a random sentences in a DOM selector
    //vad är en DOM selector, för alla taggar i html eller?
function showRandomForetagsbeskrivning(selector){
  var randomForetagsbeskrivning = getRandomForetagsbeskrivning();  
  $(selector).html(randomForetagsbeskrivning);
}

////////////////////////////
//   Målsättning (Goal)   //
////////////////////////////

var Malsattning = [
    'The vision is to dominate the market in three years',
    'The vision is to create a positive attitude towards the brand',
    'The goal is to create a huge profit in the next two years',
    'Ett mål för det fortsatta arbetet är att kunna hävda sig mot konkurrenter och skeptiker'
    ],
    //the current sentences length
    maxMalsattning = Malsattning.length;  
//get and return a random sentences from array
function getRandomMalsattning() {
    //calculate a random index
    var rndIdxMalsattning = Math.floor(Math.random()*(maxMalsattning));
    //return the random sentence
    return Malsattning[rndIdxMalsattning];                        
}

//show a random sentences in a DOM selector
    //vad är en DOM selector, för alla taggar i html eller?
function showRandomMalsattning(selector){
  var randomMalsattning = getRandomMalsattning();  
  $(selector).html(randomMalsattning);
}

////////////////////////////////////////////////////
//   Målsättning, genomförande (Goal, execution)  //
////////////////////////////////////////////////////

var Malsattninggenomforande = [
    'with the implementation of sustainable solutions',
    'by using viral marketing',
    'by creating new demands on the market',
    'with a nation wide marketing campaign'
    ],
    //the current sentences length
    maxMalsattninggenomforande = Malsattninggenomforande.length;  
//get and return a random sentences from array
function getRandomMalsattninggenomforande() {
    //calculate a random index
    var rndIdxMalsattninggenomforande = Math.floor(Math.random()*(maxMalsattninggenomforande));
    //return the random sentence
    return Malsattninggenomforande[rndIdxMalsattninggenomforande];                        
}

//show a random sentences in a DOM selector
    //vad är en DOM selector, för alla taggar i html eller?
function showRandomMalsattninggenomforande(selector){
  var randomMalsattninggenomforande = getRandomMalsattninggenomforande();  
  $(selector).html(randomMalsattninggenomforande);
}

/////////////////////////////////////////////
//   Målsättning, resultat (Goal, result)  //
/////////////////////////////////////////////

var MalsattningResultat = [
    'which will result in new buisness opportunities',
    'and in time reach a wider audience',
    'that will create a positive attitude to the business'
    ],
    //the current sentences length
    maxMalsattningResultat = MalsattningResultat.length;  
//get and return a random sentences from array
function getRandomMalsattningResultat() {
    //calculate a random index
    var rndIdxMalsattningResultat = Math.floor(Math.random()*(maxMalsattningResultat));
    //return the random sentence
    return MalsattningResultat[rndIdxMalsattningResultat];                        
}

//show a random sentences in a DOM selector
    //vad är en DOM selector, för alla taggar i html eller?
function showRandomMalsattningResultat(selector){
  var randomMalsattningResultat = getRandomMalsattningResultat();  
  $(selector).html(randomMalsattningResultat);
}

//////////////////
//    Output    //
//////////////////

//used to output the different sentences
//used by .click & .ready beneath
var outputLista = function() {
    showRandomForetagsnamn(".foretagsnamn");
    showRandomForetagsbeskrivning(".foretagsbeskrivning");
    showRandomMalsattning(".malsattning");
    showRandomMalsattninggenomforande(".malsattninggenomforande");                   
    showRandomMalsattningResultat(".malsattningresultat");
   }

$('.rndButton').click(function(e){
    outputLista();
    console.log('get random sentences at click...');
});
//generates random sentences when the page loads
$('.rndButton').ready(function(e){
    console.log('get random sentences at page load...');
    outputLista();
});

我认为最好使用占位符。如果您更改,例如

'The vision is to dominate the market in three years'

'The vision is for @@person@@ to dominate the market in three years'

然后你可以做一些类似的事情

var randomName = getRandomForetagsnamn();
var randomMalsattning = getRandomMalsattning();
var result = randomMalsattning.replace('@@person@@', randomName);
alert(result);

你只需要确保占位符是文本中其他地方都没有的东西——如果你使用特殊字符来填充占位符,这很容易实现。

EDIT:我创建了一个非常基本的JSFiddle用于演示:http://jsfiddle.net/8YjVc/1/

您可以使用拆分函数将名称放入结果中。这是小提琴。

要轻松使用拆分,请为函数外的名称创建一个var:

var name;

然后,更改添加要拆分的字符的结果(此处字符为"[]"):

var Malsattning = [
    'The vision is for [] to dominate the market in three years',
    'The vision is for [] to create a positive attitude towards the brand',
    'The goal is for [] to create a huge profit in the next two years',
    'Ett mål för det fortsatta arbetet är att kunna hävda sig mot konkurrenter och skeptiker'
],

最后,拆分并显示结果:

function showRandomMalsattning(selector){
  var randomMalsattning = getRandomMalsattning();
    var split = randomMalsattning.split('[]');
  $(selector).html(split[0] + name + split[1]);
}