我正在编程一个计算器,我试着让同一列中的所有按钮都有相同的宽度。对于那个使用jQuery的我(我这样做,因为我有一些考试,我想练习)。所有的按钮都有相同的宽度 - jQuery
我的HTML代码:
<html>
<head>
<meta charset="UTF-8">
<title>CORE2017 P3</title>
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
<script type="text/javascript" src="calculadora.js"></script>
<link href="calculadora.css" rel="stylesheet" type="text/css" media="all">
</head>
<body onload="igualarBotones()">
<header>
<p>Calculator</p>
</header>
<section id="main">
<p>
Número: <input type="text" id="pantalla"> <button id="Limpiar">Limpiar</button>
</p>
<p>
<button id="suma" class="columna1">+</button>
<button id="resta" class="columna2">-</button>
<button id="cuadrado" class="columna3">x<sup>2</sup></button>
</p>
<p>
<button id="inverso" class="columna1">1/x</button>
<button id="raiz" class="columna2">sqrt(x)</button>
<button id="pentera" class="columna3">parte_entera(x)</button>
</p>
<p>
<button id="potencia2" class="columna1">2<sup>x</sup></button>
<button id="factorial" class="columna2">x!</button>
<button id="igual" class="columna3">=</button>
</p>
</section>
</body>
</html>
我的JavaScript代码:
$(function() {
function igualarBotones(){
var columna1 = $(".columna1");
setMax(columna1);
var columna2 = $(".columna2");
setMax(columna2);
var columna3 = $(".columna3");
setMax(columna3);
}
function setMax(columna){
var maxColumna = -1;
for(i=0; i<columna.length; i++){
if(columna[i].css("width") > maxColumna){
maxColumna = columna[i].css("width");
}
}
for(i=0; i<columna.length; i++){
columna[i].css("width",maxColumna);
}
}
});
任何人都知道为什么它不是工作?
编辑:我以前$(columna[i]).css
代替columna[i].css
和它的工作。然而,我没有达到我的功能igualarBotones()
得到定义加载身体时,我认为它必须是与我如何命名或编写函数相关的东西。如果我写的JavaScript这样:
$(function() {
var columna1 = $(".columna1");
setMax(columna1);
var columna2 = $(".columna2");
setMax(columna2);
var columna3 = $(".columna3");
setMax(columna3);
function setMax(columna){
var maxColumna = -1;
for(i=0; i<columna.length; i++){
if(parseFloat($(columna[i]).css("width")) > parseFloat(maxColumna)){
maxColumna = $(columna[i]).css("width");
}
}
columna.css("width",maxColumna);
}
});
它的工作原理,但我想与被加载与身体机能igualarBotones()
做到这一点。任何想法我做错了什么?
谢谢大家,路易斯。
使用CSS Flexbox的...无需脚本来做到这一点 – charlietfl
我知道,但我想实践jQuery的,这是一种方式我可以测试jQuery。 css()方法。我可以在帖子中看到吗? – Luiscri
我会建议使用CSS来解决这个问题,你的代码中的问题是你循环的非jQuery方式..如果你使用'$(columna [i])'而不是'columna [i] ' - 如果你要去jquery路线 - 我强烈建议使用'.each'功能 –