jQuery~使用.next('div')将内容从div复制到div

时间:2014-07-22 11:21:16

标签: javascript jquery html

我正在尝试生成一个表,选中每一行后,会出现一个对话框,其中包含特定于所选行的其他数据。

我正在尝试使用'持有者'将内容移动到的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的初始内容为&#39; test ...&#39;刚刚在对话框中打开。

我在选择元素时也尝试使用.innerHTML,但这只会返回&{39} undefined&#39;

我使用了console.log($(this).next('div').html()),它返回&#39; undefined&#39;

编辑: 正如所指出的那样,<div> <td>的错误HTML现已用{{1}}

封装

1 个答案:

答案 0 :(得分: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将在div

中包裹td后生效