使用jquery find(' .classname')不能用于定位TD元素?

时间:2014-11-18 22:41:10

标签: javascript jquery

我遍历我页面上的div并使用find并提供类名来查找子元素

选择元素和输入元素,但我试图找到的3个TD没有返回任何内容

以下是代码段

        $.each($(".ccypair"), function(index, element) {
            var elements = {
                selectElement   : $(element).find('.selectstyle'),
                inputElement    : $(element).find('.inputstyle'),
                tdElement1      : $(element).find('.decayTime'),
                tdElement2      : $(element).find('.price.bidprice'),
                tdElement3      : $(element).find('.price.offerprice')
            };
        });

现在前两个find()行工作正常,但下面的三个tdElement解析为空。任何人都能告诉我哪里出错了。我怀疑TD我需要一个不同的选择器吗?

这里的道歉是html

   <div class="ccypair" id="ccypairdiv_0">
        <form>
            <table>
                <tr>
                    <td colspan="2" class="top currency"><select class="ccypairselect"/></td>
                    <td colspan="2" class="top volume"><input class="ccypairvolume" type="text" value="1m" autocomplete="off"/></td>
                    <td colspan="2" class="decaytime">00h:00m:00s</td>
                </tr>
                <tr>
                    <td colspan="3" class="price bidPrice">---.---</td>
                    <td colspan="3" class="price offerPrice">---.---</td>
                </tr>
            </table>
        </form>
    </div>

    <div class="ccypair" id="ccypairdiv_1">
        <form>
            <table>
                <tr>
                    <td colspan="2" class="top currency"><select class="ccypairselect"/></td>
                    <td colspan="2" class="top volume"><input class="ccypairvolume" type="text" value="1m" autocomplete="off"/></td>
                    <td colspan="2" class="top decaytime">00h:00m:00s</td>
                </tr>
                <tr>
                    <td colspan="3" class="price bidPrice">---.---</td>
                    <td colspan="3" class="price offerPrice">---.---</td>
                </tr>
            </table>
        </form>
    </div>

由于

2 个答案:

答案 0 :(得分:1)

首先检查你的jQuery是否加载了$,试试这个

//think about structure, it makes your code more legible

$(".ccypair").each(function(index) {
    var element = $(this); //each .ccypair found
    var elements = {
        selectElement   : element.find('.selectstyle'),
        inputElement    : element.find('.inputstyle'),
        tdElement1      : element.find('.decayTime'),
        tdElement2      : element.find('.price.bidprice'),
        tdElement3      : element.find('.price.offerprice')
    };
});

欢呼声

答案 1 :(得分:0)

一如既往地采用回归基础方法。一个简单的错字是这里的根本原因。道歉

就那个说明。 jQuery是否提供了一个标志,以便不是无法找到一个元素而是无声地失败,它将打印出一条错误消息。这会非常有用吗?