将修改后的字符串传递回其原始HTML元素

时间:2017-12-11 22:41:26

标签: javascript html regex

我有一个由插件动态生成的字符串,我用正则表达式更改了日期的格式。

表示新字符串的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;
&#13;
&#13;

1 个答案:

答案 0 :(得分:1)

在发布的代码中,为变量分配一个字符串(HTMLElement.innerHTML是字符串的类型)。

然后在dateStr.innerHTML中,JavaScript中的字符串会自动转换为String类型的实例,因此您可以在dateStr 对象中添加新属性。 / p>

相反,将DOM元素分配给变量以开始,根据需要操作字符串,然后为元素的innerHTML属性分配新值。

您还希望确保选择器返回单个元素,否则,如果它返回一个集合,当它找到多个元素时,您希望得到一个特定的元素,如document.querySelector(".date-start")[0]

&#13;
&#13;
// 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;
&#13;
&#13;