-4

如何从中获取 img 元素:

<td><img src="blah" /></td>

谢谢。

编辑:我的意思是,当我为每次迭代循环遍历每个语句并且我想摆脱 <td></td>. 我不是在搜索整个文档。

进一步编辑:这里有更多代码。我试图切入问题的核心,但解释得不够好。

$(this).closest('tr').children().each(function(){
//some code

        });

那是我的 each 函数,它获取表格行的所有 td 元素。在文本的情况下,我可以使用 text() 函数来获取文本,但是当它是

    <td><img /></td>

我不知道怎么把img弄出来。这有助于解释吗?

谢谢

4

3 回答 3

0

重新编辑使用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);
    });
});

...当然,那么表格可能是空的,您可能需要删除行等。

于 2012-04-27T08:30:05.940 回答
0

这将引用图像标签:

$("td img")
于 2012-04-27T08:31:09.707 回答
0

如果您正在为所有 td 做某事以操纵某事

$('#table td').each(function() {
var img;
img = $(this).find('img');
alert(img.attr('src'));
});
于 2012-04-27T08:32:51.737 回答