javascript - 如何选择开放日期选择器?querySelector("#datepicker-container .open .datepicker-date-display") 不起作用
问题描述
我使用了两个 Materialize 日期选择器
<input class="datepicker" type=text value="2021-05-12"/>
<input class="datepicker" type=text value="2021-05-25"/>
<div id="datepicker-container"></div>
我想更新内容,.datepicker-date-display
所以我认为这document.querySelector("#datepicker-container .open .datepicker-date-display")
会起作用。但它不返回任何元素。document.querySelector("#datepicker-container .datepicker-date-display")
- 没有 .open 总是返回第一个日期选择器。
知道为什么添加.open
到工作的 querySelector 不起作用吗?
var datepickerOptions = {
container: document.querySelector('#datepicker-container'),
onOpen: function() {
console.log(this.el.value)
var e = document.querySelector("#datepicker-container .datepicker-date-display")
console.log(e.className)
e.innerHTML = `<span class="date-text">${this.el.value}</span>`;
}
}
document.addEventListener('DOMContentLoaded', function() {
var elems = document.querySelectorAll('.datepicker');
var instances = M.Datepicker.init(elems, datepickerOptions);
});
解决方案
试试这个。这是 js fiddle 的链接:https ://jsfiddle.net/Showrin/usp84k21/1/
onOpen: function() {
document.querySelectorAll("#datepicker-container .datepicker-date-
display").forEach(container => {
container.innerHTML = `<span class="date-text">${this.el.value}</span>`;
})
}
实际上,querySelector 只抓取第一个元素。这就是为什么第二个元素没有改变。使用 querySelectorAll。它会解决问题。谢谢你。
推荐阅读
- asp.net-core - 使用 AD B2C 时如何添加 OnTokenValidated 事件处理程序?
- java - 协议处理程序启动失败 Spring Boot SSL 应用程序
- vb.net - 使用 Twitter 开发人员 API 在 VB.Net 中对 HttpWebRequest 的 400 错误请求
- c++ - 如何使用 TSS.MSR (C++) 导入椭圆 p256 公钥
- cloud-foundry - 是否可以使用 Cloud Foundry 任务调度程序覆盖磁盘空间和内存设置?
- android - android webrtc无法使用coturn服务器在LTE hostspot和wifi之间连接
- c# - 使用 TCP 的 C# 服务器-客户端实现
- javascript - 当道具在同一组件中更新时如何运行函数?
- python - 如何正则表达式句子的开头和结尾 - python
- regex - SAS:任何语言中单词字符的正则表达式