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我已经更新了我的答案