javascript - 每 2 秒将 li 的文本显示到输入中
问题描述
按下后button
,我想按input
顺序每两秒显示一次完整的列表文本li
A -- B -- C -- D -- E
我试过这个,但它不工作
<button>show li in order every 2 seconds</button>
<input type=text id="show" />
$("button").on("click",function(){
$(".menu li").each(function(){
setTimeout(function() { $("show").($(this).text()); }, 2000);
});
});
input{
width:40px;
height:40px;}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.7/jquery.min.js"></script>
<button>show li in order every 2 seconds</button>
<input type=text id="show" />
<ul class="menu">
<li>A</li>
<li>B</li>
<li>C</li>
<li>D</li>
<li>E</li>
</ul>
解决方案
您需要从增量使用setInterval
和设置文本.menu li
$("button").on("click", function() {
var items = $(".menu li"), idx = 0;
var timer = setInterval(function() {
var currText = items.eq(idx).text()
if (idx < items.length - 1) idx++;
// else idx = 0;
else clearInterval(timer); // Use this for clearing the timer
$("#show").val(currText);
if(idx > 0) items.eq(idx - 1).hide(); // Hide previous <li>
}, 2000);
});
input {
width: 40px;
height: 40px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.7/jquery.min.js"></script>
<button>show li in order every 2 seconds</button>
<input type=text id="show" />
<ul class="menu">
<li>A</li>
<li>B</li>
<li>C</li>
<li>D</li>
<li>E</li>
</ul>
推荐阅读
- python - 将 python(语音识别文本)插入 SQL Server 数据库
- python - 下面的伪代码给出了一个算法来模拟掷骰子和计数面数
- node.js - JQuery-step and Stripe - 卡挂载
- python - 读取 JSON 文件的某些行?
- visual-c++ - 使用函数错误(未解决的外部)C++
- laravel - laravel 护照在数据库事务中生成令牌
- c# - 如何将另一个类实例传递给控制器构造函数
- c - 在空字符数组上使用gets() 会导致内存问题吗?
- google-api - Street View Static API 用于没有图像的位置
- c# - 有没有办法将 3 个 List 字符串放入另一个 List<> 中?