如果在 html 片段中,则使用一行 javascript [closed]

Use one line javascript if in html snippet [closed]

提问人:justsimpleuser 提问时间:12/16/2020 最后编辑:justsimpleuser 更新时间:12/16/2020 访问量:137

问:


编辑问题以包括所需的行为、特定问题或错误以及重现问题所需的最短代码。这将有助于其他人回答这个问题。

2年前关闭。

此 fieldHTML 变量用于在用户按下“添加字段”按钮时创建动态字段。我将这些动态字段值保存在 localStorage 中。刷新页面后,我想检查此输入是否已保存值,如果是,则显示此输入。问题是,对于在值属性中定义的这一行if语句,我的输入甚至没有显示它有值。定义输入值的行有什么问题?我相信这是引号的问题,因为当我尝试调试这一行时,如果在控制台 .log 中,我得到的文本值为空。我在控制台中没有收到任何错误。

var fieldHTML = '<div> \
<input type="text" name="name[]" class="form-control" placeholder="Enter name" \
            value="'+(localStorage.getItem(array['name'][i])) ? localStorage.getItem(array['name'][i]) : 'empty' +'" /></div>';
JavaScript HTML 行情

评论

0赞 IMSoP 12/16/2020
您能否进行编辑以更清楚地解释您看到的问题,例如您期望发生的事情,以及正在发生的事情?

答:

1赞 adampweb 12/16/2020 #1
  1. \多行支持仅限于支持 ES5 的浏览器。
  2. 'empty' +'"文本的意外字符串连接。
  3. if 放在带括号的框架上((localStorage.getItem(array['name'][i])) ? localStorage.getItem(array['name'][i]) : 'empty')

修改后的脚本:

var fieldHTML = '<div><input type="text" name="name[]" class="form-control" placeholder="Enter name" value="'+ ((localStorage.getItem(array['name'][i])) ? localStorage.getItem(array['name'][i]) : 'empty') + '" /></div>';