2012-01-26 28 views
1

下面是问题的描述。我有父div(allcomments_4),而不是内部它,我有几个孩子div(oneEntry)与他们自己的孩子里面,但我只需要找到父节点的最后一个孩子(allComments_4)。我想阅读div(lastComment)里面的内容,而不是将它添加到这个div上面,这将与上面使用jquery的div(oneEntry)类似。我想用id而不是class来做这个操作。当我计算allComments_4 div的id。我试过这样。我有DIV和它的孩子DIV,我想选择使用jQuery的最后一个DIV。家长DIVS有编号

<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对不起。

+0

' id =“oneEntry”'你知道ID是唯一的吗? – TimWolla

+0

您不能使用具有相同名称的多个ID。同样在第一个变量中,您必须将该值更改为“allcomments_4”,因为现在它将它识别为未定义的变量。 – Sotiris

回答

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

这不起作用,因为它提供了比参数大的结果。它看起来像这样:

var message = $(left + ' > ' + right).html() 
+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 /(仅供参考):

<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/

+0

这种解决方案是伟大的,但我只能在lastComment div中使用id,因为这是由我的grails gsp标签使用,它只使用id更新div。所以我希望如果你有任何想法使用ID来解决这个问题。 –

+0

@KulveerSingh你可以使用相同的代码来使用'#lastComment'而不是'.lastComment',它会使用“ID”,但你需要知道这样做是非常非常错误的。 –

+0

谢谢大卫。我会尝试。请让我知道如何为你的正确答案给出分数。 –