2013-05-14 46 views
1

我試圖通過使用jquery的.eq()函數訪問div的孩子,但它看起來像是錯誤的東西,儘管事實上不是拋出一個錯誤,看起來像當我做一個.innerHTML到所需的子div元素,沒有任何反應。在這個例子中,我如何從jquery/javascript獲取div childs?

這是我的HTML:

<div id="status_container"> 
    <div class="status_item_wrapper"> 
     <div class="status_item_title"> 
      <span>TITLE 1</span> 
     </div> 
     <div class="status_item_content"> 
      <table id="box-table"></table> 
     </div> 
    </div> 
    <div class="status_item_wrapper"> 
     <div class="status_item_title"> 
      <span>TITLE 2</span> 
     </div> 
     <div class="status_item_content"> 
      <table id="box-table"></table> 
     </div> 
    </div> 
</div> 

這是我的javascript:

function doSomething(message) { 
    var data = message.data; 
    var index_container = 0; 

    var container = $("#status_container").eq(0); 
    var content_wrapper = container.eq(1); // this would be the content div of each child 
    content_wrapper.html(JSON.stringify(data)); 
} 

我認爲這將得到 「標題1」 status_item_wrapper格,然後,content_wrapper將包含「 status_item_content「對象。

我該如何到達第一個父母「status_container」的「status_item_content」div?

謝謝。

回答

2

content_wrapper是一個jQuery對象,因爲這是eq()回報,一點兒也不具有innerHTML方法,你應該使用jQuery的html()

content_wrapper.html(JSON.stringify(data)); 

返回原生的DOM元素,而不是,您可以使用get(),並做到:

var content_wrapper = container.get(1); 
content_wrapper.innerHTML = JSON.stringify(data); 

編輯:

現在您已經添加了container,但仍有一些問題。 eq()將根據基於零的索引獲取元素集合中的某個元素,並且您將ID用作選擇器,因此應該不是真正的集合,因爲ID是唯一的,並且應該只選擇一個元件。

如果你想選擇#status_container元素中的第二個孩子,你會做

var content_wrapper = $("#status_container").children().eq(1); 
+0

感謝回答,但沒有與HTML工作()要麼:(看上面我編輯的代碼。不知道爲什麼這是行不通的。檢查數據是否正確,但bleh,因爲它是一個測試它是一個「Hello world」字符串 – msqar 2013-05-14 15:32:51

+0

@msqar - 編輯答案! – adeneo 2013-05-14 15:39:56

+0

你是af ****天才!謝啦!! – msqar 2013-05-14 15:42:21