0

让我首先告诉您,我是使用 jQuery 的新手,并且总体上没有太多的编程经验。这是我第一次尝试真正尝试学习这一点,因此如果可能的话,我希望能保持基本的解释和解决方案。

我正在努力从随机句子中生成一个完整的文本块。这工作正常。但是,我希望能够将随机值插入另一个以获得更多“动态随机性”。例如,我想在其他随机变量中使用随机名称。

例如,我想从数组中创建var Malsattning一个输出,上面写着:“愿景是 [insert Name from 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();
});
4

2 回答 2

0

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

要轻松使用拆分,请为函数之外的名称创建一个 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]);
}
于 2013-07-26T13:23:04.513 回答
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/

于 2013-07-26T13:24:28.607 回答