我有DIV和它的孩子DIV,我想用jQuery选择最后一个DIV。父DIVS有id

时间:2012-01-26 22:00:39

标签: javascript jquery css

以下是问题的描述。我有父div(allcomments_4),而在里面,我有几个子div(oneEntry),里面有自己的孩子,但我只需要找到父节点的最后一个子节点(allComments_4)。我想读取div(lastComment)里面的内容,而不是将它添加到这个div之上,它与使用jquery的div(oneEntry)类似。我想使用ID而不是类来进行此操作。因为我计算allComments_4 div的id。我试过这样的。

<script>
    var allcommentsId =allcomments_4
    var right = "div#lastComment"
    var left = '#'+allcommentsId 
    var message = $(left>right ).html()
    alert(message)
</script>

<div id="allcomments_4">
 <div class="oneEntry">
   <div class="commentImage">
   </div>
   <div class="commentEntry">
   <div class="commentText">
   </div>
   <div class="commentDate">
    Commented On -"Thu Jan 26 16:44:16 EST 2012"/>
   </div>
 </div>
 <div class="oneEntry">
   <div class="commentImage">
   </div>
   <div class="commentEntry">
   <div class="commentText">
   </div>
   <div class="commentDate">
    Commented On -"Thu Jan 26 16:44:16 EST 2012"/>
   </div>
 </div>
</div><!-- One Comment Entry Ends here -->
<div id ="lastComment">
</div><!-- last Comment ends here -->
</div><!-- All Comments Ends here -->

我觉得遗漏了一些东西而且我很抱歉这个蹩脚的问题,因为我是jquery的初学者和整个javascript的东西。

2 个答案:

答案 0 :(得分:1)

如上所述,ID必须是唯一的。话虽这么说,这是一种方法来完成你的要求(在适当的地方使用类):

function displayContent(IdNum) {
    var Id = '#allcomments_' + IdNum;
    var $lastComment = $(Id).find('.lastComment');
    var message = $lastComment.html();
    alert(message);
}

displayContent(4);

HTML w / classes(供参考):

<div id="allcomments_4">
    <div class="oneEntry">
        <div class="commentImage">
        </div>
        <div class="commentEntry">
            <div class="commentText">
            </div>
            <div class="commentDate">
            Commented On - "Thu Jan 26 16:44:16 EST 2012"
            </div>
        </div>
    </div>
    <div class="oneEntry">
        <div class="commentImage">
        </div>
        <div class="commentEntry">
            <div class="commentText">
            </div>
            <div class="commentDate">
            Commented On - "Thu Jan 26 16:44:16 EST 2012"
            </div>
        </div>
    </div><!-- One Comment Entry Ends here -->
    <div class="lastComment">
        Body of lastComment
    </div><!-- last Comment ends here -->
</div><!-- All Comments Ends here -->

jsFiddle:http://jsfiddle.net/yT8Fc/

答案 1 :(得分:0)

var message = $(left>right ).html()

这不起作用,因为它给出比作为参数更大的结果。它看起来像这样:

var message = $(left + ' > ' + right).html()