2010-06-21 70 views
0

我有這個網站:jQuery的 - 如何讓HTML一個DIV中

<div class="portlet-header"> 
    Company Information ... <button> some button here </button> 
</div> 
<div class="portlet-content"> 
    <div class="content_regular"> 
     <table style=" width:100%; height:100%;"> 
      ...content 
     </table> 
    </div> 
</div> 

如何獲得的HTML後,我在portlet的標題部分按一下按鈕,在這種情況下,該表標籤?

我有這個jquery代碼來獲取標題上的文字:$(this).parent().text();,但沒有得到任何嘗試檢索如上所示的「content_regular」類下的html。

希望你的智慧能幫助我。我知道這很容易給別人,但我不熟悉jquery。

感謝

+0

$( 'content_regular')。HTML()確實有效,但這裏的問題是,上面的代碼是一個小部件。並且在同一頁面上至少有4個。如果我使用$('。content_regular')。html(),只返回第一個。 – 2010-06-21 11:16:29

回答

3

使用.next().portlet-header.portlet-content得到再使用.html()而不是.text()獲取內容,就像這樣:

$(".portlet-header").click(function() { 
    var html = $(this).next(".portlet-content").html(); 
}); 

如果有可能的div之間的東西,另一種元素等,使用.nextAll()代替,像這樣:.nextAll(".portlet-content:first")

+0

@mcxiand考慮到您的多個小部件和基於相對頭部的選擇,這是最有意義的。如果你需要所有的點擊,你也可以使用.each並把它們放在一個數組中。 – 2010-06-21 11:36:45

+0

我同意,這是最有意義的,但我似乎無法使它的工作。我的代碼是這樣的, $(this).parent()。next()。nextAll(「。contentwithscroll_regular:first」)。html(); -i應該調用父項,因爲按鈕位於portlet頭中 - 然後轉到portlet頭到portlet內容 -im現在如何在調用html()之前從portlet內容遍歷內部div content_regular, – 2010-06-21 11:56:41

+0

明白了! :) $(this).parent()。next()。children(「。contentwithscroll_regular」)。html(); – 2010-06-21 11:59:37

3

首先,使用html()功能,而不是text()功能。其次,將選擇器指向正確的節點,如.portlet-content .content_regular table。我會讓你自己結合這兩個。

+0

是的,我可以使用它,但是如何遍歷portlet-header中的content_regular div是我想知道的。我需要的是content_regular div – 2010-06-21 11:12:19

+0

下的hmtl就像我說的,改變你的選擇器並將其指向正確的節點。簡單的方法是使用類名稱本身。但是,如果該類多次使用,則必須從單擊的目標遍歷。如果是這種情況,從目標開始($(this)),上一層(portlet-header),獲取下一個兄弟(portlet-content)並查看內部以獲取表。 – 2010-06-21 11:19:43

+0

@Peter - 你需要遍歷......一個選擇器不會在這裏完成這項工作,它們是不同的概念。 – 2010-06-21 11:29:10