我有一个由插件动态生成的字符串,我用正则表达式更改了日期的格式。
表示新字符串的var在控制台中显示正确的格式,但是当我尝试将其传递回innerHTML时,没有发生任何事情?
如何将第二个(重新格式化的)日期字符串传递回带有.date-start类的HTML元素,以便输出更改?
非常感谢,
艾米丽
// remove space in string
var dateStr = document.querySelector(".date-start").innerHTML;
secondDateStr = dateStr.replace(/\sam$/, "am");
dateStr.innerHTML = secondDateStr;
console.log(secondDateStr)

<div class="date-start">January 6, 2018 @ 10:00 am</div>
&#13;
答案 0 :(得分:1)
在发布的代码中,为变量分配一个字符串(HTMLElement.innerHTML是字符串的类型)。
然后在dateStr.innerHTML
中,JavaScript中的字符串会自动转换为String类型的实例,因此您可以在dateStr
对象中添加新属性。 / p>
相反,将DOM元素分配给变量以开始,根据需要操作字符串,然后为元素的innerHTML
属性分配新值。
您还希望确保选择器返回单个元素,否则,如果它返回一个集合,当它找到多个元素时,您希望得到一个特定的元素,如document.querySelector(".date-start")[0]
// remove space in string
var dateEl = document.querySelector(".date-start");
secondDateStr = dateEl.innerHTML.replace(/\sam$/, "am");
dateEl.innerHTML = secondDateStr;
console.log(secondDateStr)
&#13;
<div class="date-start">January 6, 2018 @ 10:00 am</div>
&#13;