2012-07-25 76 views
2

我想使用jQuery在HTML表格的特定行之后插入图像。我试图使用appendTo函数,但它不起作用。我想我的jQuery选择器有问题。任何人都可以纠正我的代码Jquery插入图像到HTML表格

谢谢!

HTML代码:

<div class="articles"> 
<table align="center"> 
<tr><th><label for="id_chemical_name">Chemical name:</label></th><td><textarea id="id_chemical_name" rows="2" cols="17" name="chemical_name">Spinosad</textarea></td></tr> 
<tr><th><label for="id_T">Number of time intervals:</label></th><td><input type="text" name="T" value="10" id="id_T" /></td></tr> 

<!--I would like to insert an image after the row 'Number of time intervals'--> 

<tr><th><label for="id_a">Logistic model parameter (&#945;):</label></th><td><input type="text" name="a" value="0.746" id="id_a" /></td></tr> 
</table></div> 

jQuery代码:

<script type="text/javascript" src=" ../stylesheets/jquery-1.7.2.js"></script> 
<script> 
    $(document).ready(function(){ 
    $('<img src = "https://www.google.com/images/srpr/logo3w.png" />').appendTo('#id_T'); 
}) 
</script> 

这是问题的一个demo

回答

1

不能将图像直接插入到表格中,而无需将其封装在tr和td/th元素中。我认为这是你正在尝试做的事情:

$('<tr><th colspan="2"><img src = "https://www.google.com/images/srpr/logo3w.png" /></th></tr>').insertAfter($("#id_T").parent("td").parent("tr")); 
+0

谢谢!这解决了我的问题! – 2012-07-25 17:09:41

0

ID为id_T的元素是<input> - 特别是文本框 - 它不能包含子元素(当然不是子图像)。

你可能想尝试insertBeforeinsertAfter代替,或者你可以使用类似:

$('#id_T').closest('td').appendTo... 

到DOM从输入向上移动,找到包含<td>

0

#id_T是一个文本输入,你不能附加一个图像。

为什么你不能手动放置图像?特别是因为你不能像这样在表结构的中间转储一个图像。

0

要将图像添加到同一个TD是id_T中。请在

$('<img src = "https://www.google.com/images/srpr/logo3w.png" />').appendTo($('#id_T').parent()); 
0

任何表的内容应该是里面的TD或个标签应该是在有效tr标签。再次检查您的选择器位置。