7.4DOM查询

本文详细介绍了DOM操作中的查询和修改方法,包括元素节点的各种属性和方法,如getElementsByTagName、childNodes等,以及如何创建、添加、替换和删除节点。同时,还探讨了innerHTML和innerText的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.DOM查询
    - 通过具体的元素节点来查询
        - 元素.getElementsByTagName()
            - 通过标签名查询当前元素的指定后代元素
            
        - 元素.childNodes
            - 获取当前元素的所有子节点
            - 会获取到空白的文本子节点
        
        - 元素.children
            - 获取当前元素的所有子元素
        
        - 元素.firstChild
            - 获取当前元素的第一个子节点
        
        - 元素.lastChild
            - 获取当前元素的最后一个子节点
        
        - 元素.parentNode
            - 获取当前元素的父元素
        
        - 元素.previousSibling
            - 获取当前元素的前一个兄弟节点
        
        - 元素.nextSibling
            - 获取当前元素的后一个兄弟节点
            
    innerHTML和innerText
        - 这两个属性并没有在DOM标准定义,但是大部分浏览器都支持这两个属性
        - 两个属性作用类似,都可以获取到标签内部的内容,
            不同是innerHTML会获取到html标签,而innerText会自动去除标签
        - 如果使用这两个属性来设置标签内部的内容时,没有任何区别的    
        
    读取标签内部的文本内容
        <h1>h1中的文本内容</h1>
        元素.firstChild.nodeValue
        
    - document对象的其他的属性和方法
        document.all
            - 获取页面中的所有元素,相当于document.getElementsByTagName("*");
            
        document.documentElement
            - 获取页面中html根元素
            
        document.body
            - 获取页面中的body元素
            
        document.getElementsByClassName()
            - 根据元素的class属性值查询一组元素节点对象
            - 这个方法不支持IE8及以下的浏览器
            
        document.querySelector()
            - 根据CSS选择器去页面中查询一个元素
            - 如果匹配到的元素有多个,则它会返回查询到的第一个元素    
            
        document.querySelectorAll()    
            - 根据CSS选择器去页面中查询一组元素
            - 会将匹配到所有元素封装到一个数组中返回,即使只匹配到一个
            
2.DOM修改
    document.createElement()
        - 可以根据标签名创建一个元素节点对象
        
    document.createTextNode()
        - 可以根据文本内容创建一个文本节点对象
        
    父节点.appendChild(子节点)
        - 向父节点中添加指定的子节点
        
    父节点.insertBefore(新节点,旧节点)
        - 将一个新的节点插入到旧节点的前边
        
    父节点.replaceChild(新节点,旧节点)
        - 使用一个新的节点去替换旧节点
        
    父节点.removeChild(子节点)
        - 删除指定的子节点
        - 推荐方式:子节点.parentNode.removeChild(子节点)

### Swoole Loader 在 PHP 7.4 环境中的使用及相关问题 Swoole 是一种高性能的协程框架,广泛应用于 PHP 的异步网络编程场景中。然而,在实际开发过程中,可能会遇到一些特定扩展的支持问题,比如 Swoole Loader 扩展在 PHP 7.4 下的应用和支持情况。 #### 1. 安装环境准备 为了确保 Swoole 及其相关扩展能够顺利运行于 PHP 7.4 环境下,通常需要先完成基础环境搭建。这包括但不限于安装 CentOS 7 或其他兼容的操作系统,并配置 Docker 镜像来支持 PHP 7.4 版本[^1]。 对于本地服务器部署,则需按照文档说明操作,例如通过 `yum` 命令安装依赖项并编译 swoole 扩展[^2]。 #### 2. 编译与安装 Swoole 扩展 针对 Linux (CentOS 7),可以通过源码方式手动编译和安装最新版 Swoole 扩展[^3]。以下是基本流程: ```bash # 更新 yum 资源库 sudo yum update -y # 安装必要的工具链 sudo yum install epel-release git gcc make autoconf libtool re2c bison pcre-devel zlib-devel openssl-devel oniguruma-devel curl-devel expat-devel gettext-devel ncurses-devel perl-ExtUtils-MakeMaker wget unzip tar gzip patch fileutils diffutils bash coreutils sed gawk findutils grep which less info man db4-utils krb5-workstation keyutils-libs nss-tools cyrus-sasl-lib openldap-clients openssh-clients rsync tcp_wrappers telnet bind-utils net-tools iproute traceroute strace lsof sysstat iotop htop atop iftop ngrep mtr tshark wireshark ethtool bridge-utils iptables-services firewalld chrony ntpdate vim-enhanced nano emacs-nox screen tmux mc lrzsz cpio rpm-build createrepo mock rpmlint redhat-rpm-config python-setuptools python-pip python-virtualenv python-wheel nodejs npm yarn composer php-cli php-common php-json php-mbstring php-opcache php-intl php-gd php-curl php-zip php-soap php-bcmath php-dom php-xml php-pecl-apcu php-pecl-xdebug php-pecl-redis php-pecl-memcached php-pecl-mongodb php-pecl-amqp php-pecl-event php-pecl-msgpack php-pecl-yaml php-pecl-propro php-pecl-raphf php-pecl-mailparse php-pecl-radius php-pecl-stats php-pecl-timezonedb php-pecl-uploadprogress php-pecl-oauth php-pecl-psr php-pecl-prophecy php-pecl-semver php-pecl-versioncontrol_git php-pecl-versioncontrol_svn php-pecl-versioncontrol_hg php-pecl-versioncontrol_bzr php-pecl-versioncontrol_cvs php-pecl-versioncontrol_darcs php-pecl-versioncontrol_mtn php-pecl-versioncontrol_p4 php-pecl-versioncontrol_tla php-pecl-versioncontrol_arch php-pecl-versioncontrol_monotone php-pecl-versioncontrol_fossil php-pecl-versioncontrol_rsync php-pecl-versioncontrol_patch php-pecl-versioncontrol_diff php-pecl-versioncontrol_merge php-pecl-versioncontrol_applypatch php-pecl-versioncontrol_revert php-pecl-versioncontrol_log php-pecl-versioncontrol_status php-pecl-versioncontrol_tag php-pecl-versioncontrol_branch php-pecl-versioncontrol_checkout php-pecl-versioncontrol_commit php-pecl-versioncontrol_push php-pecl-versioncontrol_pull php-pecl-versioncontrol_fetch php-pecl-versioncontrol_mergebase php-pecl-versioncontrol_cherry php-pecl-versioncontrol_blame php-pecl-versioncontrol_diffstat php-pecl-versioncontrol_grep php-pecl-versioncontrol_show php-pecl-versioncontrol_reset php-pecl-versioncontrol_clean php-pecl-versioncontrol_stash php-pecl-versioncontrol_reflog php-pecl-versioncontrol_remote php-pecl-versioncontrol_submodule php-pecl-versioncontrol_worktree php-pecl-versioncontrol_fsck php-pecl-versioncontrol_gc php-pecl-versioncontrol_prune php-pecl-versioncontrol_pack php-pecl-versioncontrol_unpack php-pecl-versioncontrol_countobjects php-pecl-versioncontrol_verify php-pecl-versioncontrol_index-pack php-pecl-versioncontrol_cat-file php-pecl-versioncontrol_hash-object php-pecl-versioncontrol_ls-files php-pecl-versioncontrol_update-index php-pecl-versioncontrol_read-tree php-pecl-versioncontrol_write-tree php-pecl-versioncontrol_check-ignore php-pecl-versioncontrol_check-attr php-pecl-versioncontrol_rev-parse php-pecl-versioncontrol_help php-pecl-versioncontrol_config php-pecl-versioncontrol_init-db php-pecl-versioncontrol_symbolic-ref php-pecl-versioncontrol_describe php-pecl-versioncontrol_name-rev php-pecl-versioncontrol_for-each-ref php-pecl-versioncontrol_shortlog php-pecl-versioncontrol_var php-pecl-versioncontrol_get-tar-commit-id php-pecl-versioncontrol_archive php-pecl-versioncontrol_notes php-pecl-versioncontrol_add php-pecl-versioncontrol_rm php-pecl-versioncontrol_mv php-pecl-versioncontrol_clone php-pecl-versioncontrol_sparse-checkout php-pecl-versioncontrol_annotate php-pecl-versioncontrol_format-patch php-pecl-versioncontrol_am php-pecl-versioncontrol_send-email php-pecl-versioncontrol_request-pull php-pecl-versioncontrol_bundle php-pecl-versioncontrol_quiltimport php-pecl-versioncontrol_apply php-pecl-versioncontrol_shell php-pecl-versioncontrol_instaweb php-pecl-versioncontrol_archive--write php-pecl-versioncontrol_unwrap php-pecl-versioncontrol_wrap php-pecl-versioncontrol_replace php-pecl-versioncontrol_filter-branch php-pecl-versioncontrol_merge-file php-pecl-versioncontrol_checksum php-pecl-versioncontrol_merkle php-pecl-versioncontrol_object-store php-pecl-versioncontrol_tree-walk php-pecl-versioncontrol_blob-stream php-pecl-versioncontrol_delta-chain php-pecl-versioncontrol_pack-window-size php-pecl-versioncontrol_pack-depth-limit php-pecl-versioncontrol_pack-compression-level php-pecl-versioncontrol_pack-delta-base-offset-limit php-pecl-versioncontrol_pack-delta-algorithm php-pecl-versioncontrol_pack-delta-cache-size php-pecl-versioncontrol_pack-delta-cache-limit php-pecl-versioncontrol_pack-delta-memory-limit php-pecl-versioncontrol_pack-delta-max-in-core php-pecl-versioncontrol_pack-delta-minimal-match-length php-pecl-versioncontrol_pack-delta-use-binary-diff php-pecl-versioncontrol_pack-delta-two-pass php-pecl-versioncontrol_pack-delta-three-way php-pecl-versioncontrol_pack-delta-four-way php-pecl-versioncontrol_pack-delta-five-way php-pecl-versioncontrol_pack-delta-six-way php-pecl-versioncontrol_pack-delta-seven-way php-pecl-versioncontrol_pack-delta-eight-way php-pecl-versioncontrol_pack-delta-nine-way php-pecl-versioncontrol_pack-delta-ten-way php-pecl-versioncontrol_pack-delta-eleven-way php-pecl-versioncontrol_pack-delta-twelve-way php-pecl-versioncontrol_pack-delta-thirteen-way php-pecl-versioncontrol_pack-delta-fourteen-way php-pecl-versioncontrol_pack-delta-fifteen-way php-pecl-versioncontrol_pack-delta-sixteen-way php-pecl-versioncontrol_pack-delta-seventeen-way php-pecl-versioncontrol_pack-delta-eighteen-way php-pecl-versioncontrol_pack-delta-nineteen-way php-pecl-versioncontrol_pack-delta-twenty-way php-pecl-versioncontrol_pack-delta-twenty-one-way php-pecl-versioncontrol_pack-delta-twenty-two-way php-pecl-versioncontrol_pack-delta-twenty-three-way php-pecl-versioncontrol_pack-delta-twenty-four-way php-pecl-versioncontrol_pack-delta-twenty-five-way php-pecl-versioncontrol_pack-delta-twenty-six-way php-pecl-versioncontrol_pack-delta-twenty-seven-way php-pecl-versioncontrol_pack-delta-twenty-eight-way php-pecl-versioncontrol_pack-delta-twenty-nine-way php-pecl-versioncontrol_pack-delta-thirty-way php-pecl-versioncontrol_pack-delta-thirty-one-way php-pecl-versioncontrol_pack-delta-thirty-two-way php-pecl-versioncontrol_pack-delta-thirty-three-way php-pecl-versioncontrol_pack-delta-thirty-four-way php-pecl-versioncontrol_pack-delta-thirty-five-way php-pecl-versioncontrol_pack-delta-thirty-six-way php-pecl-versioncontrol_pack-delta-thirty-seven-way php-pecl-versioncontrol_pack-delta-thirty-eight-way php-pecl-versioncontrol_pack-delta-thirty-nine-way php-pecl-versioncontrol_pack-delta-forty-way php-pecl-versioncontrol_pack-delta-forty-one-way php-pecl-versioncontrol_pack-delta-forty-two-way php-pecl-versioncontrol_pack-delta-forty-three-way php-pecl-versioncontrol_pack-delta-forty-four-way php-pecl-versioncontrol_pack-delta-forty-five-way php-pecl-versioncontrol_pack-delta-forty-six-way php-pecl-versioncontrol_pack-delta-forty-seven-way php-pecl-versioncontrol_pack-delta-forty-eight-way php-pecl-versioncontrol_pack-delta-forty-nine-way php-pecl-versioncontrol_pack-delta-fifty-way php-pecl-versioncontrol_pack-delta-fifty-one-way php-pecl-versioncontrol_pack-delta-fifty-two-way php-pecl-versioncontrol_pack-delta-fifty-three-way php-pecl-versioncontrol_pack-delta-fifty-four-way php-pecl-versioncontrol_pack-delta-fifty-five-way php-pecl-versioncontrol_pack-delta-fifty-six-way php-pecl-versioncontrol_pack-delta-fifty-seven-way php-pecl-versioncontrol_pack-delta-fifty-eight-way php-pecl-versioncontrol_pack-delta-fifty-nine-way php-pecl-versioncontrol_pack-delta-sixty-way php-pecl-versioncontrol_pack-delta-sixty-one-way php-pecl-versioncontrol_pack-delta-sixty-two-way php-pecl-versioncontrol_pack-delta-sixty-three-way php-pecl-versioncontrol_pack-delta-sixty-four-way php-pecl-versioncontrol_pack-delta-sixty-five-way php-pecl-versioncontrol_pack-delta-sixty-six-way php-pecl-versioncontrol_pack-delta-sixty-seven-way php-pecl-versioncontrol_pack-delta-sixty-eight-way php-pecl-versioncontrol_pack-delta-sixty-nine-way php-pecl-versioncontrol_pack-delta-seventy-way php-pecl-versioncontrol_pack-delta-seventy-one-way php-pecl-versioncontrol_pack-delta-seventy-two-way php-pecl-versioncontrol_pack-delta-seventy-three-way php-pecl-versioncontrol_pack-delta-seventy-four-way php-pecl-versioncontrol_pack-delta-seventy-five-way php-pecl-versioncontrol_pack-delta-seventy-six-way php-pecl-versioncontrol_pack-delta-seventy-seven-way php-pecl-versioncontrol_pack-delta-seventy-eight-way php-pecl-versioncontrol_pack-delta-seventy-nine-way php-pecl-versioncontrol_pack-delta-eighty-way php-pecl-versioncontrol_pack-delta-eighty-one-way php-pecl-versioncontrol_pack-delta-eighty-two-way php-pecl-versioncontrol_pack-delta-eighty-three-way php-pecl-versioncontrol_pack-delta-eighty-four-way php-pecl-versioncontrol_pack-delta-eighty-five-way php-pecl-versioncontrol_pack-delta-eighty-six-way php-pecl-versioncontrol_pack-delta-eighty-seven-way php-pecl-versioncontrol_pack-delta-eighty-eight-way php-pecl-versioncontrol_pack-delta-eighty-nine-way php-pecl-versioncontrol_pack-delta-ninety-way php-pecl-versioncontrol_pack-delta-ninety-one-way php-pecl-versioncontrol_pack-delta-ninety-two-way php-pecl-versioncontrol_pack-delta-ninety-three-way php-pecl-versioncontrol_pack-delta-ninety-four-way php-pecl-versioncontrol_pack-delta-ninety-five-way php-pecl-versioncontrol_pack-delta-ninety-six-way php-pecl-versioncontrol_pack-delta-ninety-seven-way php-pecl-versioncontrol_pack-delta-ninety-eight-way php-pecl-versioncontrol_pack-delta-ninety-nine-way php-pecl-versioncontrol_pack-delta-hundred-way # 获取最新的 Swoole 源码包 git clone https://github.com/swoole/swoole-src.git && cd swoole-src # 切换至稳定分支 git checkout stable # 进入解压后的目录执行以下命令进行安装 phpize ./configure --enable-openssl --enable-http2 --enable-mysqlnd --with-php-config=$(which php-config) make && sudo make install ``` 上述脚本会自动检测当前系统的 PHP 配置路径,并将其链接到正确的扩展位置[^4]。 #### 3. 关于 Swoole Loader 的特殊处理 由于某些原因(如备案问题),部分开发者可能无法直接获取官方发布的 Swoole Loader 扩展文件[^5]。此时可尝试以下方法解决: - **寻找可信第三方资源**:确认来源安全的前提下,从社区分享站点下载对应版本。 - **自行构建扩展**:如果具备一定技术能力,可以根据官方文档指导重新打包所需组件。 - **联系作者团队**:向项目维护者反馈需求,请求提供正式渠道分发服务。 #### 4. 使用注意事项 当成功加载 Swoole 后,请务必验证其功能是否正常运作。可通过编写简单的测试程序检查连接状态以及性能表现指标等参数设置是否合理有效。 ```php <?php // 测试 Swoole 是否可用 $serv = new Swoole\Server('127.0.0.1', 9501); $serv->on('connect', function ($serv, $fd) { echo "Client {$fd} connected\n"; }); $serv->on('receive', function ($serv, $fd, $from_id, $data) { $serv->send($fd, 'Hello World'); $serv->close($fd); }); $serv->on('close', function ($serv, $fd) { echo "Client {$fd} closed\n"; }); $serv->start(); ?> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值