2012-04-27 162 views
-4

如何摆脱这种img元素:如何从jQuery中提取img元素?

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

感谢。

编辑:我的意思是,上面的是我,当我依次通过我的每一次迭代每个语句,我想摆脱<td></td>的。我没有搜索整个文档。

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

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

     }); 

这是我的每个函数,它获得一个表行的所有td元素。在文本我可以使用text()函数来获取文本,但是当它是

<td><img /></td> 

我不知道如何让IMG出来的情况。这有助于解释吗?

感谢

+3

这是一个非常模糊的问题。没有更多的信息,答案可能就像'$(“img”);' – 2012-04-27 08:30:19

+0

你想在'td'内提取'img'?或''td'里面'img'与'src =“blah”'或..?请更具体地说:s – 2012-04-27 08:30:41

+0

我编辑了我的问题。抱歉混淆。 – 2012-04-27 08:34:10

回答

0

回复您进一步编辑:使用find:这个问题之前

$(this).closest('tr').children().each(function(){ 
    // Get all `img` elements that are in this cell 
    var $img = $(this).find("img"); 
}); 

年长的答案是明确的

如果没有更多的情况下,它的难以 回答非常好,但基本上,使用CSS选择器的jQuery()函数(通常别名为$())。所以这可能是:

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); 
    }); 
}); 

...当然,则该表可以是空的,并且可能需要删除行等

+0

感谢您的努力,但有没有办法以我的代码的风格来做到这一点? – 2012-04-27 08:40:50

+0

@Hardworker:进一步编辑(在底部)。 – 2012-04-27 08:42:07

+1

谢谢,它的工作原理!我将在未来的问题中包含更多代码。 – 2012-04-27 08:44:49

0

这将参考图像标签:

$("td img") 
0

如果你正在为所有td做些什么来操纵东西

$('#table td').each(function() { 
var img; 
img = $(this).find('img'); 
alert(img.attr('src')); 
});