- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
getElementsByTagName()
有 2 个很棒的特性:速度快且实时。但是,如果我想获得 p strong
怎么办。当然,我可以再次使用 getElementsByTagName()
优化选择,但我不会失去新 p
标签的实时效果吗?
有没有办法将 querySelectorAll
变成实时选择器?
或者...有没有一种方法可以使用 getElementsByTagName()
和 getElementsByClassName()
创建一个以类似方式工作的函数(至少对于后代)作为 querySelectorAll
但正在直播?
最佳答案
考虑使用突变观察器。使用 subtree: true
观察 childList
。当通知到达时,您可以使用 matches
检查每个添加的节点,看看它是否与某个选择器匹配。
function querySelectorAllLive(element, selector) {
// Initialize results with current nodes.
var result = Array.prototype.slice.call(element.querySelectorAll(selector));
// Create observer instance.
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
[].forEach.call(mutation.addedNodes, function(node) {
if (node.nodeType === Node.ELEMENT_NODE && node.matches(selector)) {
result.push(node);
}
});
});
});
// Set up observer.
observer.observe(element, { childList: true, subtree: true });
return result;
}
关于javascript - 是否可以像 getElementsByTagName 一样让 querySelectorAll 生效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30578673/
我希望在通过 POST 方法发送数据后文本框消失。但我无法让 Javascript 工作。页面不断重新加载,因此文本框始终存在。 function puff() { if (document.get
我无法让 expand_aliases 在 bash 中生效。我尝试了很多不同的方法,但没有任何效果。 这是一个简单的测试用例: /bin/bash -c 'shopt -s expand_alias
我正在尝试查找 #include 位于 extern C block 内的所有位置。是否可以使用预处理器进行检查?我想在我的头文件中添加类似这样的内容: #ifdef EXTERN_C_IS_IN_E
我们扩展了 UILabel,以便能够为我们应用程序中给定标签类型的所有用途应用标准字体和颜色。例如。 @interface UILabelHeadingBold : UILabel @end 在我们的
案例1 我们正在尝试将自定义样式应用于渲染的 vuetify 元素: .input-group__input { background: red; } 但是没有任何变化。 案
我正在使用 symfony 1.4 和 sfGuardDoctrinePlugin,我已经安装并设置好了,但我遇到以下问题: 如果我以管理员身份登录并更新用户的权限,该用户必须注销然后重新登录才能获得
getElementsByTagName() 有 2 个很棒的特性:速度快且实时。但是,如果我想获得 p strong 怎么办。当然,我可以再次使用 getElementsByTagName() 优化
我有三个文件: spark_mock_dependency.py 提供了一个user() 方法来读取/etc/user, spark_mock.py 用于创建一个 Env 类,它使用 user() 方
我从 samples/bpf/pare_simple.c(来自 Linux 内核树)编译了 BPF 示例,做了非常简单的更改: SEC("simple") int handle_ingress(str
我有一个基本的树结构。容器可以水平滚动。我在所有 上都有正确的填充元素。但是,正确的填充没有生效。我该如何修复它才能生效? ul { height: 100%; margin: 0; p
我目前在使用 Ruby on Rails 上的 Assets 管道时遇到了一些问题。 我正在使用电子商务解决方案 (Spree),在文档中,文档中有这个: [...] you can improve
在我们非常庞大且非常复杂的 AngularJS 应用程序中,我注意到(偶然!)我的主模块设置中有这样一行... application.run(function($rootScope) { w
我发现重写getResources()后app第一次运行的activity也会对后面运行的activity生效,前提是你的手机字体特别大。 例如:执行以下步骤 将手机字体设置为巨无霸 创建两个名为 A
我正在尝试使用 KVO 来观察在我的页面 View Controller 的子内容 View Controller 的 ScrollView 中使用拖动时的更新变化,但是当应用程序启动时,它崩溃了说:
我是一名优秀的程序员,十分优秀!