重新编辑:使用find
:
$(this).closest('tr').children().each(function(){
// Get all `img` elements that are in this cell
var $img = $(this).find("img");
});
问题明确之前的较旧答案:
没有更多上下文,很难很好地回答,但基本上,将jQuery()
函数(通常别名为$()
)与 CSS 选择器一起使用。所以这可能是:
var img = $("td img");
或只有孩子
var img = $("td > img");
但请注意,在这两种情况下,您都将获得元素 img
的后代(第一个示例)或直接子代(第二个示例)的所有td
元素。
此外,在上述两种情况下,您都会得到一个包装了一组匹配元素的 jQuery 对象。要获取实际的底层 DOM 元素,请对对象进行索引。例如,这将为您提供文档中元素img
的后代的第一个元素:td
var rawImgElement = $("td img")[0];
...如果没有,那就是undefined.
重新编辑:
...我想摆脱<td></td>
目前还不清楚您要达到的目标。这是一个将所有元素移出表格的示例img
,将它们放在表格后面(当然,您不能只将img
元素移出td
元素,因为img
不能是 的直接子代tr
)。
HTML:
<table id="myTable">
<tbody>
<tr>
<td><img src="blah1.png"></img></td>
<td><img src="blah2.png"></img></td>
<td><img src="blah3.png"></img></td>
</tr>
</tbody>
</table>
JavaScript:
$(function() {
var $myTable = $("#myTable");
$("td > img").each(function() {
var $img = $(this),
$td = $img.parent();
$img.insertAfter($myTable);
});
});
...当然,那么表格可能是空的,您可能需要删除行等。