大家好,我的代码没有什么问题。 Exacly,我写了函数来计算divHeight + margin。看起来像这样
function mathMargin(divClass) {
divClass = "'."+divClass+"'";
divHeight = $(divClass).outerHeight(true);
margin = divHeight * 0.3;
result = divHeight + margin;
return result;
}
我试过像这样的调用函数
alert(mathMargin(flatbox-title));
但是不起作用,控制台返回“flatbox”没有定义。怎么了?
答案 0 :(得分:3)
您应该将参数作为string
传递。
alert(mathMargin('flatbox-title'));
在您编写解释器时,会将参数视为数学减法的结果。 (flatbox - title)。
此外,您不需要函数第一行的inner quotes
。请改用:
divClass = '.' + divClass;
答案 1 :(得分:1)
flatbox-title
不是变量,它是一个字符串。你需要用引号括起来。
alert(mathMargin('flatbox-title'));
答案 2 :(得分:1)
作为Alexandru-lonut Mihai和Manav答案的替代方案,您也可以传递元素:
function mathMargin(div) {
divHeight = div.outerHeight(true);
margin = divHeight * 0.3;
result = divHeight + margin;
return result;
}
alert(mathMargin( $('.flatbox-title) ));
答案 3 :(得分:0)
<强>误强>
function mathMargin(divClass) {
divClass = "."+divClass;
divHeight = $(divClass).outerHeight(true);
margin = divHeight * 0.3;
result = divHeight + margin;
return result;
}
alert(mathMargin('flatbox-title'));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="flatbox-title">fa
faww
fwafaw
fawfa
w</div>
答案 4 :(得分:0)
Interpreter将flatbox-title
视为变量,而不是字符串('flatbox-title'
),因为您没有声明这样的变量,所以会抛出异常。
另一方面,为什么简单的代码过于复杂?考虑将其重写为:
function mathMargin(divClass) {
var divHeight = $("."+divClass).outerHeight(true);
return divHeight * 1.3;
}
请注意,您在变量之前忘记了var
关键字。不确定它是否有意,但通常你应该避免这样做,因为没有它,将创建全局变量。这可能会在以后导致一些令人讨厌的错误......