如何抓取一个li并随机添加它
How to grab a li and append it randomly
我试图创建一个网站,你把你的名字输入,并按"计算",它会采取一个随机的li与该名称,并将其附加到一个框。这是我的HTML:
<form class="newName">
<label for="nameInput">Your Name</label>
<input class="input-md" id="nameInput" placeholder="(e.g: John Smith)">
<span class="btn-names">Enter...</span>
<span class="calculate">Calculate</span>
</form>
<div class="namesEntered">
<ul id="enteredNames"></ul>
</div>
<div class="centered">
<h1>And The Winner Is....</h1><br><br>
<span id="name" class="names">???</span>
</div>
和我的JavaScript/jQuery:
$(document).ready(function(){
$('.btn-names').on('click', function(){
if ($('#nameInput').val() === ''){
alert('No names have been entered');
} else {
var $inputted_names = $('#nameInput').val();
var listed = '<li>'+ $inputted_names +'</li>';
$(listed).appendTo('ul');
$('#nameInput').val('');
}
});
$('.calculate').on('click', function(){
var tag = document.getElementsByTagName('li');
var name = tag.innerHTML;
var randomator = Math.floor(Math.random(tag) * name.length);
console.log(randomator);
});
});
您可以在http://www.b3ws.com/randomator.html查看这个示例网站但是现在还不行
首先,获取li
元素的数组,如
var names = $('#enteredNames li');
然后,得到随机名称
var randomName = names.get(Math.floor(Math.random()*names.length));
最后,更改#name
span
$('#name').text(randomName.innerHTML);
$(document).ready(function(){
$('.btn-names').on('click', function(){
if ($('#nameInput').val() === ''){
alert('No names have been entered');
} else {
var $inputted_names = $('#nameInput').val();
var listed = '<li>'+ $inputted_names +'</li>';
$(listed).appendTo('ul');
$('#nameInput').val('');
}
});
$('.calculate').on('click', function(){
var names = $('#enteredNames li');
var randomName = names.get(Math.floor(Math.random()*names.length));
$('#name').text(randomName.innerHTML);
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<label for="nameInput">Your Name</label>
<input class="input-md" id="nameInput" placeholder="(e.g: John Smith)">
<span class="btn-names">Enter...</span>
<span class="calculate">Calculate</span>
<div class="namesEntered">
<ul id="enteredNames"></ul>
</div>
<div class="centered">
<h1>And The Winner Is....</h1><br><br>
<span id="name" class="names">???</span>
</div>
另外,请参见从JavaScript数组中获取随机项
Replace your randomator section with this:
var randomator = Math.floor(Math.random() * tag.length); //don't need tag in random function
console.log(randomator);
$('.names').html(tag[randomator].text()); //assign the test from the random tag to the element with the names class
相关文章:
- 为li元素添加标题
- 如何更改dynamicaly的主题添加了li项jquery mobile
- 无法在 DIV 中添加 LI 项
- 动画化并同时向 li 添加类
- 单击按钮时,我如何将li的id添加为1
- 页面加载后,在li remove上添加类
- Javascript为li添加了span
- Javascript 使用 array 将 li 添加到 ul
- 如何将现有 ul 的所有 li 添加到另一个 ul 的底部,基于他们的 css 类
- 将 li 添加到 ul 并查找是否存在
- 按下轮播中的按钮时自动向每个 li 添加类
- 将 li 添加到 ul
- 将所选li添加到现有ul中
- 在页面加载后向li添加类
- 如果内容是某个字符串,则向li添加类
- AngularJS:为li添加活动效果和悬停效果
- 向LI添加占位符attr
- 当单击里面的标记时,向li添加类
- 如何将带有多个类的新li添加到UL
- 向父类LI添加类,其中A =当前文档