Javascript 试图修剪';px和x27;脱线?

Javascript 试图修剪';px和x27;脱线?,javascript,jquery,string,Javascript,Jquery,String,我正试图结束我的脚本。我需要做的就是从这个调用返回的字符串的末尾去掉“px” $(form).children('.inputSpan').each(function() { var $input = $(this) var $padding = $input.children('.input').css('padding-left'); }); 这将返回“6px”。我想修剪6px并确保它是一个整数,这样我就可以向它添加2个像素,并将其提供给css规则。我不熟悉javascript

我正试图结束我的脚本。我需要做的就是从这个调用返回的字符串的末尾去掉“px”

$(form).children('.inputSpan').each(function() {
   var $input = $(this)
   var $padding = $input.children('.input').css('padding-left');
});

这将返回“6px”。我想修剪6px并确保它是一个整数,这样我就可以向它添加2个像素,并将其提供给css规则。我不熟悉javascript中的字符串操作。帮帮我

您可以使用基本javascript replace()、parseInt()或parseFloat()函数从结果中删除“px”。你使用哪种方法取决于你到底需要什么

$(form).children('.inputSpan').each(function() {
   var $input = $(this)
   var $padding = $input.children('.input').css('padding-left');

   $padding = $padding.substring(0, $padding.Length - 2);
});
下面是使用parse 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'));
});
$(form).children('.inputSpan').each(function() {
   var padding = parseDouble($(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 = parseInt($(this).children('.input').css('padding-left'));
});
$(form).children('.inputSpan').each(function() {
   var padding = parseDouble($(this).children('.input').css('padding-left'));
});
在上述代码中,“16px”将返回“16”。“16.7px”将返回“16.7”。“16em”将返回“16”。与parseInt()相反,如果您出于某种原因使用小数,它将保留小数


当然,如果有理由看到为将来参考而采取的分解步骤,或者如果其他变量用于其他原因,则可以使代码保持较长的时间。这是使用parseInt()的长版本

另外,解释变量名从$padding到padding的变化。javascript变量前面的$符号通常用于区分常规javascript变量和jQuery变量,因为它们具有不同的属性。没有理由使用$padding,因为.css()不返回jQuery对象,而只是一个简单的字符串

此外,对于更复杂的搜索,可以研究正则表达式

function size(value){
    return( parseInt( value.replace('px','') ,10) ); 
}

使用如下函数:

size("32px"); // Returns 32 as an integer

parseInt('6px')->6//整数看看.parseInt('6.5px')->6//一个问题;考虑到大量的细节,这是一个很好的答案;但是,我建议将简明的parseInt版本移到顶部。太好了!非常感谢您对这些函数的详细介绍!非常有用。在我的变量中添加$是使用其他语言的习惯:/它们看起来更适合我,我能够更快地区分它们,但我正在努力打破这个习惯。我正在寻找的就是parseInt。脚本所做的是从表单输入字段中获取属性。然后,它使用抓取的属性在输入元素上覆盖占位符文本,创建一个新的span元素。然后有几个函数显然使这个跨度像普通占位符一样工作,隐藏和显示它。我这样编程是因为我希望用户尽可能多地控制他们的输入样式,并且仍然允许脚本轻松运行。您不需要
值。完全替换(…)
代码部分-使用简单的
parseInt()
call将删除任何尾随的非整数标记。@Nightfirecat我只想安全一点,除非字符串读起来像
3px2
,否则它不会有什么区别-它完全没有必要。