1

我有一个看起来像这样的 div:

<td id="monday">
<p class="outter">whatever here</p>
<p class="hidden" style="display:none">Some content I want to get</p>
</td>

现在的问题是 - td id 会改变(这只是其中之一)。

所以我想要做的是,当用户点击 .outter(它总是被称为 outter)时,我想找到 td id,以便然后访问 p 类(它总是被“隐藏”)。

所以我试过这个(document.body 是为了解决我遇到的动态加载问题):

$(document.body).on('click', '.outter', function() {
        var info = $(this).parent("td").$(".hidden").text();
        $("#rightBox").css("width", "200px");
        $("#rightBox").css("background", "#f0f0f0");
        $("#rightBox").empty();
        $("#rightBox").append(info);
    });

我遇到的问题是在第一行,获取变量。我想说这个特殊的 .outter 类,找到它的父类,然后找到它里面的隐藏类。然后获取该隐藏类中的文本。然后获取该变量并将其转储到#rightBox;

有人可以帮忙吗?

4

2 回答 2

3

该行var info = $(this).parent("td").$(".hidden").text();抛出错误,您应该使用findorchildren方法,因为目标元素是单击元素的下一个直接兄弟,您可以使用next方法,您不需要父元素的ID。

$(document.body).on('click', '.outter', function() {
    // var info = $(this).closest('td').find('.hidden').text();
    var info = $(this).next('.hidden').text();
    $("#rightBox").css({"width": "200px", "background": "#f0f0f0"})
                  .html(info);
});

请注意,您还可以创建一个类并使用addClass方法而不是css方法,这使您的代码更简洁。

于 2013-04-02T05:40:44.497 回答
0

你可以这样做:

$(document.body).on('click', '.outter', function() {
    var info = $(this).next().text();
    $("#rightBox").css("width", "200px");
    $("#rightBox").css("background", "#f0f0f0");
    $("#rightBox").empty();
    $("#rightBox").append(info);
});

演示:http: //jsfiddle.net/eMzcx/

于 2013-04-02T05:46:10.763 回答