无法找到div元素的子元素

时间:2014-09-15 05:55:21

标签: javascript jquery html

目前我正在尝试关闭HTML中每个faqs div类中第一个元素的图像。我正在尝试选择faqs父元素,然后向下查询以查找下面的javascript中的第一个列表元素:

$(function () {
    _faqs = $('.faqs').accordion({
        autoHeight: false,
        selectedClass: 'open',
        animated: "slide",
        header: "dt"
    });

    console.log(_faqs.length); // returns 2, so it is selecting all faqs classes

    for (var i = 0; i < _faqs.length; i++) {
        _faqs[i].children('.corner.tr').first().hide();
        _faqs[i].children('.corner.tl').first().hide();

        // also tried using find()
        //_faqs[i].find('.corner.tr').first().hide();
        //_faqs[i].find('.corner.tl').first().hide();
    }
});

HTML:

<div class="faqs">
        <dl class="thefaq">

                    <div class="corner tl">
                        <img src="bg-table-tl.gif" alt="" />
                    </div>
                    <div class="corner tr">
                        <img src="bg-table-tr.gif" alt="" />
                    </div>

                    <dt>
                        Question
                    </dt>
                    <dd class="open cf">
                        <p>Answer. <br />
                    </dd>
        </dl>
<br />
</div>
<div class="faqs">
        <dl class="thefaq">

                    <div class="corner tl">
                        <img src="bg-table-tl.gif" alt="" />
                    </div>
                    <div class="corner tr">
                        <img src="bg-table-tr.gif" alt="" />
                    </div>

                    <dt>
                        Question
                    </dt>
                    <dd class="open cf">
                        <p>Answer. <br />
                    </dd>
        </dl>
<br />
</div>

我一直在开发人员工具控制台中显示Uncaught TypeError : object is not a function错误,我在这里做错了什么?

我检查了_faqs变量,它似乎包含了针对孩子的方法,但我仍然遇到此错误......

2 个答案:

答案 0 :(得分:2)

$(".faqs").find(".corner.tr:first,.corner.tl:first").hide();

DEMO

答案 1 :(得分:1)

在你的循环中_faqs[i]指向HTMLElement,其中有一个名为children的属性,这显然不是一个函数。

您尝试做的是调用jQuery的children()方法。您无法在本机DOM元素上调用jquery方法:为此,您需要将元素包装在jQuery中,如$(_faqs[i])

$(_faqs[i]).children('.corner.tl').first().hide();