HTML标签的value属性可以用来存储JavaScript代码吗?
Can an HTML tag's value attribute be used to store JavaScript code?
我正在构建一个简单的随机单词生成器,我试图有一个<select>
下拉确定要显示的单词数。我的想法是让<option>
的值包含我想要解析到函数中的变量。但是,它没有像我希望的那样读取变量,就像它在第一个div中所做的那样,而是写入文字值。我相信有一种更优雅的方式来写它,但现在我很好奇我是否可以这样做。
JSFiddle
HTML:<select id="wordCount" class="span2">
<option value="word1">1 Words</option>
<option value="word1+' '+word2">2 Words</option>
<option value="word1+' '+word2+' '+word3">3 Words</option>
<option value="word1+' '+word2+' '+word3+' '+word4">4 Words</option>
</select>
<input id="gen" type="submit" value="Generate">
<div id="wordBin"></div>
<div id="wordBin2"></div>
JavasSript:
$('#gen').click(function generateWords(){
var wordCount = document.getElementById('wordCount').value;
var wordbank = ['rock', 'paper', 'scissor', 'apple', 'beer', 'potato'];
var word1 = wordbank[Math.floor(Math.random()*wordbank.length)];
var word2 = wordbank[Math.floor(Math.random()*wordbank.length)];
var word3 = wordbank[Math.floor(Math.random()*wordbank.length)];
var word4 = wordbank[Math.floor(Math.random()*wordbank.length)];
var wordBin = document.getElementById('wordBin');
var wordBin2 = document.getElementById('wordBin2');
wordBin.innerHTML = word1+' '+word2+' '+word3+' '+word4;
wordBin2.innerHTML = wordCount;
});
我不建议这样做,但你要找的是eval
。我已经更新了小提琴与一个简单的改变:
wordBin.innerHTML = word1+' '+word2+' '+word3+' '+word4;
wordBin.innerHTML = eval(wordCount);
,它就像你想要的那样工作。然而,这是一种糟糕的处理事情的方式(正如您所暗示的)。如果您在您的值中存储一个计数,并通过附加随机单词来循环计数,那将会好得多。真正的HTML/javascript应该是这样工作的:
HTML:<select id="wordCount" class="span2">
<option value="1">1 Words</option>
<option value="2" selected="selected">2 Words</option>
<option value="3">3 Words</option>
<option value="4">4 Words</option>
</select>
<input id="gen" type="submit" value="Generate">
<div id="wordBin"></div>
<div id="wordBin2"></div>
JS:
$('#gen').click(function generateWords() {
var wordCount = document.getElementById('wordCount').value;
var wordbank = ['rock', 'paper', 'scissor', 'apple', 'beer', 'potato'];
var finalMessage = "";
for (i = 0; i < parseInt(wordCount, 10); i++) {
if (i > 0) finalMessage += " ";
finalMessage += wordbank[Math.floor(Math.random() * wordbank.length)];
}
var wordBin = document.getElementById('wordBin');
var wordBin2 = document.getElementById('wordBin2');
wordBin.innerHTML = finalMessage;
wordBin2.innerHTML = wordCount;
});
更新小提琴: http://jsfiddle.net/N988s/2/
为什么不这样呢:
<select id="wordCount" class="span2">
<option value="1">1 Word</option>
<option value="2">2 Words</option>
<option value="3">3 Words</option>
<option value="4">4 Words</option>
</select>
<input id="gen" type="submit" value="Generate">
<div id="wordBin"></div>
<div id="wordBin2"></div>
Js:
var wordbank = ['rock', 'paper', 'scissor', 'apple', 'beer', 'potato'];
$('#gen').click(function () {
var wordCount = document.getElementById('wordCount').value;
var wordBin = document.getElementById('wordBin');
words = '';
for (var i = 0; i < wordCount; i++) {
if (words != '') words += ' ';
words += getRandomWord();
wordBin.innerHTML = words;
}
});
function getRandomWord() {
return wordbank[Math.floor(Math.random()*wordbank.length)];
}
http://jsfiddle.net/N988s/3/相关文章:
- 如何使用Doctrine在MongoDB中存储Javascript代码
- 有人知道如何在本地存储javascript函数所做的css更改吗
- .txt文件和.json文件同样适合存储javascript对象
- 是否可以存储javascript函数调用并在设置某些变量时执行它
- 如何在外部存储javascript变量(没有服务器)的值
- 如何在PHP会话中存储javascript数组
- 本地存储 javascript 变量到 php
- 如何在rails/devise中存储Javascript/AJAX变量
- 我可以在mySQL数据库中存储JavaScript对象吗?
- 用于存储 Javascript 应用程序的持久本地数据的轻量级解决方案
- 在元素上使用css属性content来异常存储javascript的信息
- 如何正确存储javascript模板,使其不会;t实例化了多次
- windows8存储javascript应用程序,从web下载和保存图像
- 获取sencha touch中本地存储javascript文件的属性
- 浏览器是读取/存储Javascript文件中的所有内容,还是仅读取/存储它们需要的内容
- 可以使用数据属性来存储Javascript'状态'
- 离线webapp -存储JavaScript对象
- 从本地存储javascript的对象数组中删除一个对象
- 如何在jsp字符串中存储javascript变量值
- 数组存储javascript