无法访问儿童>孩子......元素jQuery

时间:2014-01-11 17:31:52

标签: jquery

HTML

<div class="subNavStrip">
                <table class="navTable" style="width: 100%">
                    <tr class="stripContainer">
                        <td class="subNavStriptTitleContainer" style="width: 100%"><a class="subNavStriptTitle">app</a></td>
                        <td class="btnExpander"><a class="expanderSign">[--]</a></td>
                        <td class="nextPrevContainer"><a class="prev">Prev</a></td>
                        <td><a style="color: gray;">|</a></td>
                        <td class="nextPrevContainer"><a class="next">Next</a></td>
                        <td><div class="scrollup subScrollup"></div></td>
                        <td><div class="subShutter"></div></td>
                    </tr>
                </table>
            </div>

的jQuery

$(".subNavStrip").dblclick(function() {
        var currentArea = $(this).parents(".subContainer").children(".expanderArea");
        currentArea.slideToggle("800", "easeOutCubic");
        var sign = $(this).children(".navTable").children(".stripContainer").children(".btnExpander").children(".expanderSign").text();
        if (sign == "[+]") $(this).children(".expanderSign").text("[--]");
        else $(this).children(".expanderSign").text("[+]");
    });

无法获得孩子们对孩子们的价值...... var'ign'中的元素(第四个查询行)

我做错了吗?

2 个答案:

答案 0 :(得分:2)

.stripContainer不是.navTable

的孩子

浏览器在tbody中添加table标记,因此无效。

var sign = $(this).children(".navTable").children(".stripContainer");

托盘.find()

var sign = $(this).find(".expanderSign").text();

答案 1 :(得分:0)

也许是因为DOM在表和tr之间插入了一个t:

enter image description here

所以tr不是孩子,而是孙子。