javascript - .find() 在 DOMNodeInserted 上无法按预期工作
问题描述
我有一个使用jquery-ui datepicker
. 此日期选择器使用旧图标,我想在不修改代码的jquery-ui-{version}.js
情况下更改它以防将来更新。另外,我不能使用另一个日期选择器,因为已经有很多与此日期选择器相关的工作,并且更改所有这些工作绝对是浪费时间,并且可能会破坏当前的应用程序。
因为 datepicker 是通过 javascript 创建的元素,所以我认为我可以使用该事件DOMNodeInserted
来修改我想要的元素的类。
这是我写的代码:
$(document).on('DOMNodeInserted','div.ui-datepicker',function(e){
var element = e.target;
var prev = $(element).find('div.ui-datepicker-header').find('a.ui-datepicker-prev').find('span.ui-icon');
var next = $(element).find('div.ui-datepicker-header').find('a.ui-datepicker-next').find('span.ui-icon');
//The prev and next elements are not the ones i am looking for
$(prev).removeClass();
$(next).removeClass();
$(prev).empty();
$(prev).addClass('fas');
$(prev).addClass('fa-chevron-left');
$(next).empty();
$(next).addClass('fas');
$(next).addClass('fa-chevron-right');
});
正如我在代码中作为评论所写的那样,prev 和 next 对象不正确。只有第一个.find()
有效。当我在控制台上打印元素时,它会将元素打印div.ui-datepicker-header
为prev
and的元素next
。我尝试分离检索以定位问题所在,但即使是.find('a.ui-datepicker-prev')
也不起作用。没有错误,但它仍然检索父级,即使我正在使用它来查找它的子级。我尝试使用.children('a.ui-datepicker-prev')
但没有任何改变。
触发我的是,如果我采用完全相同的代码并将其放在任何地方,但在.on('DOMNodeInserted')
事件中,它可以工作。我有点卡在这里,我找不到有同样问题的人,如果你有,请分享。
欢迎任何想法。
解决方案
var prev = $(element).find('div.ui-datepicker-header').find('a.ui-datepicker-prev').find('span.ui-icon');
var next = $(element).find('div.ui-datepicker-header').find('a.ui-datepicker-next').find('span.ui-icon')
应该是
var prev = $(element).find('div.ui-datepicker-header a.ui-datepicker-prev span.ui-icon');
var next = $(element).find('div.ui-datepicker-header a.ui-datepicker-next span.ui-icon');
推荐阅读
- html - 如何在选择下拉列表中应用占位符以及角度 6 中的 [ngmodel]?
- java - 进度条完成后调用方法
- flutter - 如何全局更改 OutlineButton 的边框颜色和宽度?
- elasticsearch - 如何在 Grafana 中重置“警报”状态
- python - Python 链表实现和对象建模
- javascript - 如何在Joi中的一个值上验证具有两个最大条件的对象?
- django - 页面正在打开,但当我使用 {% for i in kitty_list %} 时搜索不起作用,但如果是 {% for i in kitty %},则出现 NoReverseMatch 错误
- apache-kafka - KSQL 状态是否可以从 Kafka Streams 应用程序中查询?
- android - 将 Serializable 用作 Android 导航组件的深层链接参数
- c# - 如何从不同项目文件夹的输出目录访问运行时中的文件