首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在javascript中找到子代元素?

如何在javascript中找到子代元素?
EN

Stack Overflow用户
提问于 2022-02-02 10:10:22
回答 2查看 53关注 0票数 0

我的成绩低于标准。我正在做一些DOM操作,我试图使用vanila而不是jquery。

在jQuery中,我是这样写的

代码语言:javascript
复制
var $window = $(window),
            $container = $('.rc105w1'),
            $categories = $('.rc105w2'),
            $counts = $('.rc105count'),
            $productLists = $('.rc105w3'),
            vdub = window.innerWidth,
            resizeTimeout;
        labelCategories();
        function labelCategories() {

            var row = 1,
                prevoffset = 0,
                guid = 0,
                offset;
            $categories.each(function() {

                var $category    = $(this),
                    $productList = $category.find($productLists),
                    $link        = $category.find('> a');

                console.log($productList.length,'product length')
                console.log($link.length,'link length')
            });

        }
    })

使用这行$category.find($productLists),我正在检查number of descendent or matching elements

我也想用香草js做同样的事,.I试过这样

代码语言:javascript
复制
function init(){

        console.log('javascript code start')
        var $window = window,
            $container = document.querySelectorAll('.rc105w1'),
            $categories = document.querySelectorAll('.rc105w2'),
            $counts = document.querySelectorAll('.rc105count'),
            $productLists = document.querySelectorAll('.rc105w3'),
            vdub = window.innerWidth,
            resizeTimeout;
        labelCategories();
        function labelCategories() {

            var row = 1,
                prevoffset = 0,
                guid = 0,
                offset;
            $categories.forEach(function(el) {

                var $category    = el,
                    $productList = $category.querySelectorAll($productLists),
                    $link        = $category.querySelectorAll('> a');

                console.log($productList.length,'javasscript $productList length ')
                console.log($link.length ,'javasscript $link length ')
            });

        }
    }
    function docReady(fn) {
        // see if DOM is already available
        if (document.readyState === "complete" || document.readyState === "interactive") {
            // call on next available tick
            setTimeout(fn, 1);
        } else {
            document.addEventListener("DOMContentLoaded", fn);
        }
    }
    docReady(init)

我无法找到匹配的元素或子代元素使用javascript找到什么方法?

代码语言:javascript
复制
<section class="rc105 rc105v0">
    <div class="cwidth">
        <div class="rc105w1">
            <div class="rc105w2 rc105w2-bttn">
                <a href="/cloud/migrate-applications-to--cloud/">
                    <span> Applications</span>
                </a>
            </div>
            <div class="rc105w2 rc105w2-bttn">
                <a href="/cloud/migrate-custom-applications-to-cloud/">
                    <span>Custom Applications</span>
                </a>
            </div>
        </div>
        <div class="rc105w1 rw-scrim-neutral-40bg">
            <div class="rc105w2 rc105w2-drawer rc105w2-6up rc105w2-12set rc105w2-tallbttn">
                <a href="#developer-services">
                    <span>Developer Services</span>
                </a>
                <div class="rc105w3">
                    <h3>Developer Services</h3>
                    <p>Build, deploy, and manage modern cloud applications using developer friendly tools and services.</p>
                    <div class="rc105w4">

                        <div class="rc105w5 rc105w5-half">
                            <h4>Build and run</h4>
                            <ul class="rc105linklist rc105w5-2col">
                                <li><a href="/cloud-native/api-gateway/">API Gateway</a></li>
                                <li><a href="/cloud-native/api-management/">API Management</a></li>
                            </ul>
                        </div>

                        <div class="rc105w5 rc105w5-quarter">
                            <h4>Low code</h4>
                            <ul class="rc105linklist">
                                <li><a href="/application-development/apex/">Application Express (APEX)</a></li>
                                <li><a href="/application-development/visual-builder/">Visual Builder Studio</a></li>
                            </ul>
                        </div>

                        <div class="rc105w5 rc105w5-quarter">
                            <h4>Extend</h4>
                            <ul class="rc105linklist">
                                <li><a href="/integration/application-integration/">Application Integration</a></li>
                                <li><a href="/content-experience/">Content Management</a></li>
                            </ul>
                        </div>

                    </div>
                </div>
            </div>
            <div class="rc105w2 rc105w2-drawer rc105w2-6up rc105w2-12set rc105w2-tallbttn">
                <a href="#containers-and-functions">
                    <span>Containers and Functions</span>
                </a>
                <div class="rc105w3">
                    <h3>Containers and Functions</h3>
                    <p>Deploy microservices applications on high-performance, managed open source Docker, Kubernetes, and Fn Functions services.</p>
                    <div class="rc105w4">
                        <div class="rc105w5">
                            <ul class="rc105linklist">
                                <li><a href="/cloud-native/functions/">Functions</a></li>
                                <li><a href="/cloud-native/container-engine-kubernetes/">Kubernetes Engine</a></li>
                                <li><a href="/cloud-native/container-registry/">Registry</a></li>
                            </ul>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</section>
EN

回答 2

Stack Overflow用户

发布于 2022-02-02 10:14:46

querySelectorAll()需要一个选择器,而不是(静态) Nodelist

为了使您的代码正常工作,您可以像使用$link一样传递选择器。

$productList = $category.querySelectorAll('.rc105w3')

票数 0
EN

Stack Overflow用户

发布于 2022-02-02 10:17:53

当您尝试使用querySelectorAll时,可能会出现问题,因为它将为您提供一个数组,所以尝试使用querySelector而不是querySelectorAllquerySelectorAll也需要选择器而不是Nodelist。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70953742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档