2012-01-26 57 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

謝謝大衛。我會嘗試。請讓我知道如何爲你的正確答案給出分數。 –