我正在尝试包装我的脚本placeholderRX。我需要做的就是从此调用返回的字符串末尾获取'px'。
$(form).children('.inputSpan').each(function() {
var $input = $(this)
var $padding = $input.children('.input').css('padding-left');
});
返回“6px”。我想关闭6 px并确保它是一个整数,这样我就可以添加2个像素并将其提供给css规则。我是javascript中字符串操作的新手。救救我!
答案 0 :(得分:11)
您可以使用基本的javascript replace(),parseInt()或parseFloat()函数从结果中删除“px”。您使用哪种方法取决于您的具体需求。
以下是使用parse replace()删除“px”的缩短版代码。
$(form).children('.inputSpan').each(function() {
var padding = $(this).children('.input').css('padding-left').replace("px", "");
});
在上面的代码中,“16px”将返回“16”。 “16.7px”将返回“16.7px”。 “16em”将返回“16em”。
以下是使用parse parseInt()删除“px”等代码的缩短版本。
$(form).children('.inputSpan').each(function() {
var padding = parseInt($(this).children('.input').css('padding-left'));
});
在上面的代码中,“16px”将返回“16”。 “16.7px”将返回“16”。 “16em”将返回“16”。与第一个replace()示例相反,这将删除任何文本,而不仅仅是“px”。
以下是使用parse parseDouble()删除“px”等代码的缩短版本。
$(form).children('.inputSpan').each(function() {
var padding = parseDouble($(this).children('.input').css('padding-left'));
});
在上面的代码中,“16px”将返回“16”。 “16.7px”将返回“16.7”。 “16em”将返回“16”。与parseInt()相反,如果你出于某种原因,它会保留小数。
当然,如果有理由看到为将来参考而采取的分解步骤,或者由于其他原因使用了其他变量,则可以保持代码冗长。这是使用parseInt()的长版本。
$(form).children('.inputSpan').each(function() {
var $input = $(this)
var padding = $input.children('.input').css('padding-left');
var paddingInt = parseInt(padding);
});
另外,解释变量名称从$ padding到padding的变化。 javascript变量前面的$符号是区分常规javascript变量和jQuery变量的常用方法,因为它们具有不同的属性。没有理由使用$ padding,因为.css()不返回jQuery对象,而是返回一个简单的字符串。
此外,对于更复杂的搜索,您可以研究正则表达式。
答案 1 :(得分:3)
function size(value){
return( parseInt( value.replace('px','') ,10) );
}
使用这样的功能:
size("32px"); // Returns 32 as an integer
答案 2 :(得分:0)
$(form).children('.inputSpan').each(function() {
var $input = $(this)
var $padding = $input.children('.input').css('padding-left');
$padding = $padding.substring(0, $padding.Length - 2);
});