Javascript 如何使文本自动显示在搜索栏中?
有一个对象,其键的值为文本,此文本应显示在网站上搜索页面的占位符中。第一个键一次写入一个字母,直到创建整个单词,然后,一次删除一个字母,第二个键以相同的方式写入占位符。拨号速度无关紧要 随信附上我的作品。现在的问题是,所有的密钥都已写入,但它们必须轮流写入,以字母形式删除前一个密钥Javascript 如何使文本自动显示在搜索栏中?,javascript,function,object,web,Javascript,Function,Object,Web,有一个对象,其键的值为文本,此文本应显示在网站上搜索页面的占位符中。第一个键一次写入一个字母,直到创建整个单词,然后,一次删除一个字母,第二个键以相同的方式写入占位符。拨号速度无关紧要 随信附上我的作品。现在的问题是,所有的密钥都已写入,但它们必须轮流写入,以字母形式删除前一个密钥 let类型={ 措辞1:“词语”, 第二句话:“一直是”, 措辞3:“删除”, }; 函数编写器(){ 设curr=0; 让text=Object.value(类型) 让elem=document.getEleme
let类型={
措辞1:“词语”,
第二句话:“一直是”,
措辞3:“删除”,
};
函数编写器(){
设curr=0;
让text=Object.value(类型)
让elem=document.getElementsByClassName('topnav');
elem.textContent+=text.charAt(curr);
咖喱++
如果(当前
解决方案
- 调用setTimeout(),因为它将调用该方法一次,而setIntervall()将重复调用它。这里没有意义,因为您将在下次函数调用中再次调用它
- 使用递归获取数组的下一个字
这里定义了三个案例
当前字母
对数组的同一元素应用方法
当1为false且value
对下一个数组元素writer(value+1)应用方法时
1和2为false,然后将数组的内容打印为字符串
let类型={
措辞1:“词语”,
第二句话:“一直是”,
措辞3:“删除”,
};
var curr=0;
函数编写器(值){
设inp=document.getElementById(“文本”);
让wordArray=Object.values(类型)
让句子=字数组[值];
inp.placeholder=句子.charAt(curr);
curr++;
如果(当前<句子长度){
setTimeout(函数(){
作家(价值观);
}, 500);
}else if(值
我做了一个演示,你可以从你的问题中拼凑出一小部分。你真的没有具体说明什么。。。但是我想补充一点,types
变量应该是数组
,而不是对象
,这使得它更容易使用。尽管如此,我还是使用了您提供的代码:
const类型={
措辞1:“词语”,
第二句话:“一直是”,
措辞3:“删除”,
}
const inputElm=document.querySelector('.topnav>input')
函数iteratePlaceholder(位置=1){
inputElm.placeholder=types[`phrase${place | | 1}`];
//仅当“位置”小于键(3)的长度时,才再次调用此函数
(place
提供一些解释和答案总是好的,而不仅仅是代码转储。这样OP就能更好地理解你的提议。让elem
现在已经过时了。@Reyno删除了它。请提供更多细节。您希望每个句子的每个字符都单独打印吗?什么时间间隔?句子转换之间的期望间隔是多少?@vsync是的,它们应该一个接一个地写,删除前一个。任何时间的写作和删除。已经correcting@AlexLemeshev“那么一次只有一个字符?”亚历克斯喜欢一个论点。例如,写“words”并删除,然后写“hasebes”并再次删除。如果我没有写作业,很抱歉exactly@AlexLemeshev我已经更新了我的答案