使用.detach删除表的一部分

时间:2013-01-28 04:53:29

标签: javascript jquery jquery-selectors checkbox

如果选中复选框,我需要一个添加和删除表中列的函数。我目前获得的代码可以正常工作。控制台消息在正确的时间出现,表列正确地添加到HTML。

问题出在else{}部分:取消选中复选框时,不会删除列。在firebug中,我收到一条消息,说我的选择器是错误的,但我不确定如何解决它。假设选择器是正确的,我的.detach(this)应用是否正确?

 function makevisible(idsandclasses,object,folder){     
    $('#checkbox'+idsandclasses).change(function() {
      console.log(idsandclasses, "before if checked")

    if($('#checkbox'+idsandclasses).is(':checked')){
       console.log(idsandclasses, "if checked")
       $('tr:contains("Details")').append('<td id="rowdetails'+folder+'">'+object.name+'</td>')
       }else{
             console.log("unchecked")
             $('#rowdetails'+folder).detach(this)
             }  
    })
};

我在这里使用函数:

$(document).ready(function() {
    $("#dot0001").hover(makevisible("info0001", object0001,"object0001"))
})

这是萤火虫的消息:

TypeError:expr.replace不是函数
expr = expr.replace(rattributeQuotes,“='$ 1']”)

这是我的jquery-1.9.0.js文件中我的代码出现问题的部分:

expr = expr.replace( rattributeQuotes, "='$1']" );

我认为不需要HTML。如果那应该是这种情况虽然让我知道。

3 个答案:

答案 0 :(得分:0)

您需要将选择器传递给detach(或者根本没有选择它)。您正在传递this这是一个DOM元素。理想情况下,$('#rowdetails'+folder)将匹配您尝试分离的元素。

来源:

http://api.jquery.com/detach/

答案 1 :(得分:0)

从分离中删除this。只需.detach()即可。

答案 2 :(得分:0)

我认为问题是

$(document).ready(function() {
    $("#dot0001").hover(function(){
makevisible("info0001", object0001,"object0001")
})
})