嘿伙计们,我现在正在学习jQuery,我很好奇。
对于返回字符串大小的函数,例如:
$(".some-class").css("line-height"); // => "18px"
有没有办法比较它们?例如,如果我想在做某事之前看看它是否至少有一定的尺寸?
我实际上并没有计划使用它,我只是很好奇。我四处搜寻,但没有找到任何东西。我想会有一个插件。也许首先确保比较字符串具有相同的度量单位,然后查看哪个是更大的数字,或类似的东西。
作为一个附带问题,出于好奇:在javascript中,保留仅数字的方法是什么?那么,我如何从18
获得"18"
或"18px"
?如果,为了好玩/练习,我想实现上面所说的,有什么方法我应该看看,将数字与其余方法分开,还是应该简单地使用正则表达式?
答案 0 :(得分:3)
我不太确定各种形式的单位,但要将返回值作为整数。
if (parseInt($(".some-class").css("line-height"), 10) < 18) {
alert("It's less than 18px!");
}
不要忘记设置parseInt的基数:http://www.w3schools.com/jsref/jsref_parseInt.asp
答案 1 :(得分:1)
不要忘记,如果未明确设置行高, the height returned will be "normal
" (jsFiddle) ,那么您也应该处理....(normal
是默认值,它应该是某种合理的距离)
您还可以使用正则表达式对px
进行切片。将字符串输入该表单后, JS will do the type conversion for you (jsFiddle) :
var height = $(".some-class").css("line-height");
if (height !== "normal") {
// Remove 'px' from the end. The $ means the end of the line in a regex.
height = height.replace(/px$/, "");
if (height < 18) {
alert("The height (" + height + ") is less than 18");
} else {
alert("The height (" + height + ") is greater or equal to 18");
}
} else {
alert("The height is " + height);
}
此处为 a Stack Overflow question about line-height normal
,此处为 a rant about line-height normal
by Eric Meyer 。