Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我怎样才能更有效地重写它_Javascript_Jquery - Fatal编程技术网

Javascript 我怎样才能更有效地重写它

Javascript 我怎样才能更有效地重写它,javascript,jquery,Javascript,Jquery,我必须相信有更好的方法来编写下面的代码。提前谢谢 var hProtein = $('#protein-lbl'); var hCarb = $('#carb-lbl'); var hFat = $('#fat-lbl'); var hTotal = $('#totalCalories'); // Normal Calc vars var nProtein = $('#protein-normal-lbl'); var nCarb = $('#carb-normal-lbl'); var nF

我必须相信有更好的方法来编写下面的代码。提前谢谢

var hProtein = $('#protein-lbl');
var hCarb = $('#carb-lbl');
var hFat = $('#fat-lbl');
var hTotal = $('#totalCalories');

// Normal Calc vars
var nProtein = $('#protein-normal-lbl');
var nCarb = $('#carb-normal-lbl');
var nFat = $('#fat-normal-lbl');
var nTotal = $('#totalCalories-normal');

// Hide calculations until bodyweight is entered
hProtein.hide();
hCarb.hide();
hFat.hide();
hTotal.hide();
nProtein.hide();
nCarb.hide();
nFat.hide();
nTotal.hide();

为什么不将标签包装在字段集中并隐藏字段集呢?为什么不将标签包装在字段集中并隐藏字段集呢?也许给HTML元素一个类就行了

var $ele = $('.class-name');
$ele.hide();

也许给HTML元素一个类就行了

var $ele = $('.class-name');
$ele.hide();

通过这种方式向元素添加公共类并隐藏它

$('.common-class-name').hide()


将所有元素放在单div wrap中,并通过该id隐藏它

将公共类添加到元素中,通过这种方式隐藏它

$('.common-class-name').hide()


将所有元素放在单div wrap中,并通过该id隐藏它。最好的解决方案是在HTML/CSS中指定页面的默认条件,这样它一开始就可以正确显示,而不必运行一堆javascript来设置默认条件

因此,如果您试图在页面加载时建立默认条件,请在HTML中将所有这些元素的显示样式更改为正确的状态

或者更好的是,给它们一个通用的类名,并创建一个CSS样式的规则,以便它们最初都是隐藏的。在标记/CSS中执行此操作将防止它们在脚本运行时显示和隐藏-它们将以正确的状态开始

CSS:

.initialHidden{
显示:无;
}
HTML:


最好的解决方案是在HTML/CSS中指定页面的默认条件,这样它一开始就可以正确显示,而不必运行一堆javascript来设置默认条件

因此,如果您试图在页面加载时建立默认条件,请在HTML中将所有这些元素的显示样式更改为正确的状态

或者更好的是,给它们一个通用的类名,并创建一个CSS样式的规则,以便它们最初都是隐藏的。在标记/CSS中执行此操作将防止它们在脚本运行时显示和隐藏-它们将以正确的状态开始

CSS:

.initialHidden{
显示:无;
}
HTML:


我会这样做:

$([
    '#protein-lbl',
    '#carb-lbl',
    '#fat-lbl',
    '#totalCalories',
    '#protein-normal-lbl',
    '#carb-normal-lbl',
    '#fat-normal-lbl',
    '#totalCalories-normal'
].join()).hide();
我会这样做:

$([
    '#protein-lbl',
    '#carb-lbl',
    '#fat-lbl',
    '#totalCalories',
    '#protein-normal-lbl',
    '#carb-normal-lbl',
    '#fat-normal-lbl',
    '#totalCalories-normal'
].join()).hide();

正是为此目的而设计的:
适用于所有元素。然后你可以做
$(“.hideEle”).hide()
。我在想纯javascript,是的。。。不是最聪明的饼干。我现在使用的是css类。
正是为了这个目的而设计的:
用于所有元素。然后你可以做
$(“.hideEle”).hide()
。我在想纯javascript,是的。。。不是最聪明的饼干。我现在正在使用一个css类。你可能想添加更多解释。你可能想添加更多解释。我不知道为什么我没有想到。。。谢谢@BRogers-你为什么用JS而不是CSS设置初始状态?我不知道为什么我没有想到。。。谢谢@BRogers-你为什么要用JS而不是CSS设置初始状态?为什么要把它们都列在一个数组中,而不是只使用一个逗号分隔的字符串?这只是避免使用looooong字符串的一种方法:D我知道你在想什么,我同意,这是没有用的,不推荐使用;)为什么要将它们全部列在一个数组中,而不是只使用一个逗号分隔的字符串?这只是避免使用looooong字符串的一种方法:D我知道你在想什么,我同意,这是无用的,不推荐使用;)