xiaopengpo
羽異
2017-08-19 03:16
采纳率: 50%
浏览 6.2k

jQuery TypeError: text is not a function

本人在做jQuery 测试删除表格的行数之后,重新排序,用text()方法报错,用html()方法也报错,但是可以使用append()方法,新手问题,求解。

function delTr(tempRow){
$("#fsoSiTr"+tempRow).remove();
var $fsoSiTrs = $("#fsoIsTbl tr:gt(0) td:first-child");
for(var i=0; i<$fsoSiTrs.length-1;i++){
/* $fsoSiTrs[i].innerHTML = i+1; */ //这样操作没问题
$fsoSiTrs[i].text(i+1); //这种方式操作就会报错:TypeError: $fsoSiTrs[i].text is not a function
}
}

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • stopllL
    white_g 2017-08-19 05:47
    已采纳

    $fsoSiTrs是jQuery对象,你用了[i]就转变为了dom对象,你innerHTML是dom对象的方法所以$fsoSiTrs[i].innerHTML不报错;
    text()是jQuery对象上的方法,在dom对象上,原生并不支持这个方法,所以报错text不是一个函数。
    要想使用text()函数,你就得把这个dom对象转为jQuery对象,最简单就是$($fsoSiTrs[i]).text() 用$(任意dom对象)就能转为jquery对象。

    点赞 评论
  • zml_moxueli
    呓语的风 2017-08-19 03:22

    $fsoSiTrs[i].html()

    点赞 评论
  • xiaopengpo
    羽異 2017-08-19 03:32

    html()方法也报错,就是append()不报错,我就奇怪了

    点赞 评论
  • xiaopengpo
    羽異 2017-08-19 03:43

    就这么沉下去了吗? 寻大神指教

    点赞 评论
  • showbo

    []后是dom对象,不是jquery,dom对象没有text,html方法,改为eq获取

    
    $fsoSiTrs[i].text(i + 1);
    ===》
    $fsoSiTrs.eq(i).text(i + 1);
    
    点赞 评论

相关推荐