更新每个第5个td

时间:2015-09-22 10:49:40

标签: javascript jquery html

我需要更新每个第5个td。我写了这样的jquery

$(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。我怎么能修好它?

4 个答案:

答案 0 :(得分:5)

问题是,value是一个dom元素引用而不是jQuery对象。

此外,由于您要更新每个td的html内容,您必须迭代并设置html,否则img_link将仅具有第一个{{1}的值在td

td

答案 1 :(得分: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 + '">');
    });
});

答案 2 :(得分:2)

这样:

td.each(function(index, value) {

答案 3 :(得分:0)

您可能没有注意到,但在查询中缺少n。 它应该是$(document).ready(function () { var td = $('tbody td:nth-child(5n)'); td.html(function(i,html){ return '<img height="120px" width="100px" src="' + html.trim() + '">' }) })

以下是更正的查询

nth-child(5n)