2012-04-27 133 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')); 
});