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

时间:2013-07-26 13:07:13

标签: javascript jquery html text random

首先让我告诉你,我刚开始使用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();
});

2 个答案:

答案 0 :(得分:0)

您可以使用拆分功能将名称放入结果中。 Here是小提琴。

要轻松使用拆分,请在函数外部为名称创建一个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]);
}

答案 1 :(得分:0)

我认为你最好的选择是使用占位符。 如果你改变了例如。

'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);

您只需要确保占位符是文本中不存在的其他内容 - 如果您使用特殊字符填充占位符,则很容易实现。

编辑:我为演示目的创建了一个非常基本的JSFiddle:http://jsfiddle.net/8YjVc/1/

相关问题