【问题标题】:Function variables in jQuery [duplicate]jQuery中的函数变量[重复]
【发布时间】:2016-04-03 19:31:55
【问题描述】:

这很简单,但我需要能够切换显示表格中的列。

这个想法是有一个函数,它将获取列的名称(所有行在同一列中具有相同的数据字段)并将其隐藏,同时调整表格的宽度。

使用 Chrome 的检查器,我想出了一个简单的概念证明

$('[data-id="column"],[data-field="column"]').toggle()

运行上述操作后,我需要调整元素的宽度加/减 4 像素以使表格正确适合 - 表格在列的右侧呈现一个白色框。这只是一个概念证明,实际宽度将存储在一个变量中,该变量将被操纵以允许隐藏多个列。

$(".oe_list_content").width($(window).width()+/-4)

我做了一个简单的函数来提出最初的想法,但是当我运行该函数时,它返回 undefined 并且不进行更改。我相当肯定它可以,但是 jQuery 选择器不能接受函数变量吗?

function rowToggle(row){
    // Verify the rows even exist in the DOM
    if($('[data-id="'+row+'"]').length){
        $('[data-id="'+row+'"]','[data-field="'+row+'"]').toggle();
        if($('[data-id="'+row+'"]').is(':hidden')){
            $(".table").width($(window).width()+4);
        }else{
            $(".table").width($(window).width()-4);
        }
    }
}

这看起来确实是一个变量问题,因为

var row = "column";
$('[data-id="'+ row +'"]').toggle();

实际上并没有切换该字段。我错过了什么吗?

【问题讨论】:

  • 你能发布你正在使用的html吗?
  • var row = "column"; 我希望你意识到这很奇怪。此外,如果您希望函数返回某些内容,则必须指定 return 语句。
  • 选择器只是一个字符串,连接一个变量也可以。 For example

标签: javascript jquery html function variables


【解决方案1】:

这一行 $('[data-id="'+row+'"]','[data-field="'+row+'"]').toggle();

应该是: $('[data-id="'+row+'"],[data-field="'+row+'"]').toggle();

这是一个单一的选择器字符串。不是两个用逗号分隔的字符串。

对此问题的进一步参考:jQuery attribute selector for multiple values

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-31
    • 2015-10-25
    • 2018-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-30
    相关资源
    最近更新 更多