我正在尝试生成一个表,选中每一行后,会出现一个对话框,其中包含特定于所选行的其他数据。
我正在尝试使用'持有者'将内容移动到的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}}
答案 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
后生效