【问题标题】:Remove part of a table with .detach使用 .detach 删除表的一部分
【发布时间】:2013-01-28 04:53:28
【问题描述】:

如果复选框被选中,我需要一个函数来添加和删除表中的列。我目前得到的代码在很大程度上可以正常工作。控制台消息在正确的时间出现,并且表格列已正确添加到 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。如果是这样的话,尽管让我知道。

【问题讨论】:

  • 这段代码调用makevisible,然后将返回的值(即undefined)传递给.hover()。那是不对的。要么直接调用makevisible,要么将实际函数传递给.hover()
  • 要删除表格中的一列,您必须在每一行中删除相应的&lt;td&gt;
  • @jfriend00 我知道谢谢。一旦我得到答案,我就知道如何将其应用于所有单元格。我只是尽量保持简单。

标签: javascript jquery jquery-selectors checkbox


【解决方案1】:

从分离中删除this。只需.detach() 就足够了。

【讨论】:

  • 但这并不能解决无效选择器的问题
  • @Haley 无效选择器在哪里?因为$('#rowdetails'+folder) 应该是一个有效的选择器(应该扩展为$("#rowdetailsobject0001")
  • 我在我的问题中添加了萤火虫消息。也许这有帮助
  • 什么是folder?您确定分离线是有错误的那条吗?
  • 根据萤火虫错误消息源自我的“jquery.1.9.0.js”
【解决方案2】:

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

来源:

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

【讨论】:

    【解决方案3】:

    我想问题是

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

    【讨论】:

    • 如果这是问题,控制台消息都不应该出现,不是吗?
    • 试一试。这使我的网站非常滞后,并将我的 mac 进程“WindowServer”驱动到疯狂的 CPU 使用率。
    • ?! ,无论如何,这里有几件事你应该知道.. 1st this 指向同一个对象,该对象绑定了更改函数。这是支票吗?
    猜你喜欢
    • 1970-01-01
    • 2012-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-17
    • 1970-01-01
    • 1970-01-01
    • 2012-01-11
    相关资源
    最近更新 更多