如何检测 html 元素是否可以追加子节点?

2023-11-26

我在我的应用程序中创建了一个名为“loading”的自定义 jquery 事件。当触发此事件时,我想附加一个带有微调器的屏蔽元素。我可以毫无问题地弄清楚那部分。但是,某些元素(图像、表单输入等)无法附加子元素。我需要能够检测此事件的目标是否可以接收子元素。如果不能,那么我会将微调器和蒙版添加到它的父元素中。


您必须检查名称:

/*global $, jQuery */

function isVoid(el) {
    var tags = ['area', 'base', 'br', 'col', 'command', 'embed', 'hr', 'img', 'input',
                 'keygen', 'link', 'meta', 'param', 'source', 'track', 'wbr'],
        i = 0,
        l,
        name;

    if (el instanceof jQuery) {
        el = el[0];
    }

    name = el.nodeName.toLowerCase();

    for (i = 0, l = tags.length; i < l; i += 1) {
        if (tags[i] === name) {
            return true;
        }
    }
    return false;
}

并像这样使用它:

var el = document.getElementById('el'),
    elj = $('#el');

if (!isVoid(el)) {
    // append
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何检测 html 元素是否可以追加子节点? 的相关文章

随机推荐

  • 如何使用简单注入器装饰 ASP.NET MVC 控制器

    我想对我的 MVC 控制器应用一些横切关注点 目前 这是通过抽象基类实现的 但是当我们重构更多的代码库以利用依赖注入时 我想知道 Simple Injector 是否可以通过其装饰或拦截设施来帮助我 所以我尝试创建一个非常基本的装饰器 pu
  • 将数据框写入 Excel 工作表时,出现 AttributeError 'Workbook' 对象没有属性 'add_worksheet'

    我有以下代码 我正在尝试将数据框写入 Excel 文件的 现有 工作表 此处称为 test xlsx Sheet3 是我想要放置数据的目标工作表 并且我不想用新工作表替换整个工作表 df pd DataFrame Data 10 20 30
  • 在 Sublime text 2 中运行代码 (Mac OS X)

    我正在尝试在 sublime text 2 中运行 C 代码 我注意到 scanf 似乎被完全忽略 尽管它在 xcode 和带有 gcc 的终端中运行良好 我个人更喜欢 sublime text 的外观 有办法解决这个问题吗 这已经在 SO
  • 为什么 Dictionary 不支持 null key? [复制]

    这个问题在这里已经有答案了 首先 why不Dictionary
  • 优雅地退出应用程序?

    我有一个具有明确定义的 Try Catch Finally 链的应用程序 该应用程序在正常情况下退出并执行finally 块 但是当有人过早地点击 GUI 中的红色 X 时 该程序完全存在 代码 0 并且主线程的finally 块未被调用
  • pandas 将一列的一部分替换为另一列

    我有一个 pandas 数据框 我们称之为data data有两列 列a和列b 像这样 a b 0 aaa tts 1 abb tst 2 aba tss 我想更换每个 a 在列中a带柱b 像这样 a b 0 ttsttstts tts 1
  • 如何在bash中分割由/分隔的字符串

    我必须在 bash 脚本中用 分割字符串 但我尝试过 for i in echo www tr 但它不起作用 有什么建议吗 多谢 IFS read a foo lt lt lt abc def ghi jkl echo foo 0 foo
  • 错误[E0463]:在为 wasm32-unknown-unknown 构建 Rust 项目时找不到“core”的包

    我收到以下错误消息 error E0463 can t find crate for core note the wasm32 unknown unknown target may not be installed error aborti
  • 计算对象中非空字段的数量

    我有一个UserProfile包含用户数据的类 如下所示 class UserProfile private String userId private String displayName private String loginId p
  • 带有容器和默认分配器的模板模板参数:我可以使我的声明更紧凑吗?

    我正在看这个有趣的话题 https stackoverflow com a 16596463 2436175 我的具体案例涉及使用 opencv 中的 cv Point 和 cv Rect 的 std 容器声明模板化函数 我想要针对以下模板
  • spoj ARRAYSUB:O(n) 复杂度方法

    我试图在 spoj 上解决这个问题http spoj pl problems ARRAYSUB 我用两种方法解决了这个问题 首先使用优化的蛮力 其次在 k 2k 3k 等处进行枢轴并找到最大值 尽管这两种解决方案在最坏情况下都被接受 但复杂
  • 订阅 Meteor.Users 集合

    in server js Meteor publish directory function return Meteor users find fields emails 1 profile 1 in client js Meteor su
  • 强制对象评估为 false

    我猜这可能是特定于应用程序的 但我使用的是node js 只要它在v8引擎中工作 我不介意 我正在尝试创建一个Object评估结果为 false 例如 var Foo function return this var bar new Foo
  • java file.renameTo() 确实重命名文件但返回 false。为什么?

    问题是我需要在其余逻辑工作之前移动文件 因此当该方法返回 false 时我停止执行 但是 当我在 Windows 资源管理器中检查该文件时 它有一个新名称并且已移动 只是好奇为什么会发生这种情况 这是我刚刚尝试重现问题的一些示例代码 这几乎
  • iOS 10 中收不到推送通知

    我的应用程序在 Appstore 中 推送通知在 iOS 9 中工作正常 但在 iOS 10 中不起作用 我没有收到任何 iOS 10 设备的推送通知 我已检查服务器中的设备令牌和证书 全部正确 我还检查了设置应用程序中的通知属性 一切都很
  • 释放鼠标捕获并让鼠标点击通过

    我有一个类似于弹出窗口或菜单的控件 我想显示它 当用户单击框的边界之外时 让它隐藏自己 我使用了 Mouse Capture this CaptureMode SubTree 并以与 OnLostMouseCapture 中的 Menu P
  • google.colab 模块中是否有一个函数可以关闭运行时

    有时 当我在 google colab 中运行时 当运行完成时 我无法留在计算机前手动断开与服务器的连接 即使我的运行已完成 无缘无故占用节点 连接仍保持打开状态 google colab 中是否有一个函数 可以让我插入该函数以在一些纪元后
  • Tensorflow如何恢复具有不同名称但相同形状的权重?

    我在 Tensorflow 中有多种架构 其中一些共享某些部件的设计 我想训练其中一个网络 并在另一个网络中使用相似层的训练权重 此时 我可以保存所需的权重 并将它们重新加载到具有完全相同的变量命名约定的架构中 然而 当两个网络中的权重名称
  • Swing Worker:函数 get()

    我的问题是我不明白如何swingworker有效 因为我想做的是fa worker get 因为我有一个很长的方法 可以计算在后台运行的很多点 因为我不想冻结我的界面 并且我想得到她的结果来绘制组件图像 但我不明白当我这样做时它会去哪里fa
  • 如何检测 html 元素是否可以追加子节点?

    我在我的应用程序中创建了一个名为 loading 的自定义 jquery 事件 当触发此事件时 我想附加一个带有微调器的屏蔽元素 我可以毫无问题地弄清楚那部分 但是 某些元素 图像 表单输入等 无法附加子元素 我需要能够检测此事件的目标是否