2015-09-22 53 views
3

我需要更新每個第5個td。我寫這樣的jquery更新每個第5個td

$(document).ready(function(){ 
    var td = $('tbody td:nth-child(5)'); 
    var img = '/img/'+td.html().trim().toString(); 
    $.each(td, function(index, value){ 
     value.html('<img src="' + img +'">'); 
    }); 
}) 

但它說我Uncaught TypeError: value.html is not a function。我如何修復它?

+0

最簡單的方法就是給予一個類第五TD和目標是 – AlexG

回答

5

問題是,value是DOM元素引用不是jQuery對象。

此外,由於要更新每個td的HTML內容,你將不得不遍歷和設置如下否則img_link的HTML將只在td的第一td的值設置

$(document).ready(function() { 
    var td = $('tbody td:nth-child(5n)'); 

    td.html(function(i,html){ 
     return '<img height="120px" width="100px" src="' + html.trim() + '">' 
    }) 
}) 
3

使用nth-child(5n)來選擇每個第5個元素。

var td = $('tbody td:nth-child(5n)'); 
//       ^------------ you missed n here 

代碼

$(document).ready(function() { 
    $('tbody td:nth-child(5n)').each(function() { 

     var img_link = '/img/category_img/' + $(this).html().trim(); 
     $(this).html('<img height="120px" width="100px" src="' + img_link + '">'); 
    }); 
}); 
+0

'value'是DOM元素的引用,不是嗎」它呢? –

+0

@ArunPJohny不,它是DOM元素,正在更新... – Tushar

+0

也'img_link'將具有來自'td'設置的第一個元素的內容....我想OP要保留每個'td'的內容 –

2

給這種方式:

td.each(function(index, value) { 
0

您可能沒有注意到,但在查詢中缺少n。 應該nth-child(5n)

下面是更正後的查詢

$(document).ready(function(){ 
    var td = $('tbody td:nth-child(5n)'); 
    var img = '/img/'+td.html().trim().toString(); 
    $.each(td, function(index, value){ 
     value.html('<img src="' + img +'">'); 
    }); 
}) 
相關問題