2014-07-22 80 views
0

我正在嘗試生成一個表格,每選中一行,將出現一個對話框,其中包含特定於所選行的其他數據。jQuery〜使用.next('div')將內容從div複製到div

我想這是一個使用'holder'div從內容移到的方法,然後.dialog()在執行。

<table border="1"> 
    <tr> 
    <td><b>Customer</b></td> 
    <td><b>Phone umber</b></td> 
    <td><b>Time</b></td> 
    </tr> 
    <tr class="ref"> 
    <td>111111</td> 
    <td>111111</td> 
    <td>111111</td> 
    <td><div style="display: none;">Hello, World!</div></td>     
    </tr> 
    <tr class="ref"> 
    <td>222222</td> 
    <td>222222</td> 
    <td>222222</td> 
    <td><div style="display: none;">Hello, Again!</div></td> 
    </tr> 
</table> 

<div id="holder" class="hold">test...</div> 


$('.ref').on('click', function(){ 
     $('#holder').html($(this).next('div').html()); 

     $('#holder').dialog(); 
    }); 

這不起作用。使用當前代碼,持有者div的'test ...'的初始內容僅在對話框中打開。

我已經選擇所述元件時使用.innerHTML也嘗試,然而,這僅返回「undefined

我用console.log($(this).next('div').html()),它返回「undefined

編輯: 如指出的那樣,不正確與<div> HTML現在封裝<td>

+1

無效的HTML包木窗div後,將工作! 'tr'不能有'Div'作爲它的直接孩子。 –

+2

你有一個無效的html - >'tr'不能有'div'作爲孩子..把它改成'​​222222

Hello, Again!
'然後'$('#持有人')。html($(this).children ('div')。html());' –

+0

我以前曾嘗試在自己的​​中使用div,但沒有成功 –

回答

2

試試這個:用.find()代替.next()

.next()將找到下一個兄弟,即下一個tr,而.find()將尋找其後代。

$('.ref').on('click', function(){ 
     $('#holder').html($(this).find('div').html()); 

     $('#holder').dialog(); 
    }); 

tr不能div直接孩子這麼敷在td象下面這樣:

<tr class="ref"> 
    <td>222222</td> 
    <td>222222</td> 
    <td>222222</td> 
    <td><div style="display: none;">Hello, Again!</div></td> 
    </tr> 

以上的jQuery在td

+0

非常感謝,我會在超時時間完成 –

+0

是的,很高興幫助你:) –