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