0

如果复选框被选中,我需要一个函数来添加和删除表中的列。我目前得到的代码在很大程度上可以正常工作。控制台消息在正确的时间出现,并且表格列已正确添加到 HTML。

问题出在else{}部分:未选中复选框时未删除列。在萤火虫中,我收到一条消息,指出我的选择器错误,但我不确定如何修复它。假设选择器是正确的,我的应用.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。如果是这样的话,尽管让我知道。

4

3 回答 3

0

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

资源:

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

于 2013-01-28T04:57:31.147 回答
0

我想问题是

$(document).ready(function() {
    $("#dot0001").hover(function(){
makevisible("info0001", object0001,"object0001")
})
})
于 2013-01-28T05:17:04.363 回答
0

this从分离中移除。就够.detach()了。

于 2013-01-28T04:59:39.187 回答