Javascript 如何使用jquery为负整数显示类似excel的方括号

Javascript 如何使用jquery为负整数显示类似excel的方括号,javascript,jquery,html,Javascript,Jquery,Html,我正在开发一个金融计算器,我想用括号括起数值,比如excel中的负数,我已经在为十进制值做自定义属性actual val,并显示舍入值,所以很难管理其他属性,或者在检查每个输入和结果时应用,因为有成千上万的计算 比如说 var value = -20000 // actual value 所以如果我为输入设置值 $("#input").val(value); 我想展示一下 (20000) 但是当我得到值时,所以不需要在$(“#input”).val()中使用括号,需要相同的结果你想要的是整

我正在开发一个金融计算器,我想用括号括起数值,比如excel中的负数,我已经在为十进制值做自定义属性actual val,并显示舍入值,所以很难管理其他属性,或者在检查每个输入和结果时应用,因为有成千上万的计算

比如说

var value = -20000 // actual value
所以如果我为输入设置值

$("#input").val(value);
我想展示一下

(20000)

但是当我得到值时,所以不需要在$(“#input”).val()中使用括号,需要相同的结果

你想要的是整数周围的括号,但你不能用JS添加它们,这是你说的吗

您是否在之前和之后尝试过CSS

HTML:

这样,您就可以用括号将每个值括起来,而不会有任何问题


可以通过
模糊功能将值从负号(-)更改为大括号。挑战是在触发
val()
事件时获取正确的值。这可以通过重写
val()
事件并在那里进行操作来实现

(function($) {
  var originalVal = $.fn.val;
  $.fn.val = function(value) {
    if (arguments.length >= 1) {
      // setter invoked, do processing

      return originalVal.call(this, value);
    }
    //getter invoked do processing
    if ($(this).attr('data-type') == 'number') {
      var valueToReturn = originalVal.call(this);
      return valueToReturn.replace(/\(/g, '-').replace(/\)/g, '');
    }
    return originalVal.call(this);
  };
})(jQuery);
我的想法是从中重写
val()
事件

我创建了一个jsFiddle来演示这一点。请注意,在按钮单击事件处理程序中,我们只是使用
$('#myNumber').val()
来获取正确的值。

请注意,您仍然需要处理无效数字的情况


希望这有帮助

只有当它为负值时才应适用。此外,问题提到“输入”(使用
.val()
not.text()`)-您能否确认css是否也会处理输入(使用before+after)?OP可能不需要“输入”,纯文本就足够了,在这种情况下,这可能是最理想的。如果您可以检查值是否为负值,您可以给出
div
或任何类。这些类是您在
之前
和之后打开时使用的类。但是如果你能识别出他们,这就可以了。我在编辑之前读了这个问题,没有看到破折号的替换。你的小提琴看起来像史诗。即使我没有这个用例,如果我需要类似的东西,我也会使用它!
p::before {
    content: "(";
}

p::after {
    content: ")";
}
(function($) {
  var originalVal = $.fn.val;
  $.fn.val = function(value) {
    if (arguments.length >= 1) {
      // setter invoked, do processing

      return originalVal.call(this, value);
    }
    //getter invoked do processing
    if ($(this).attr('data-type') == 'number') {
      var valueToReturn = originalVal.call(this);
      return valueToReturn.replace(/\(/g, '-').replace(/\)/g, '');
    }
    return originalVal.call(this);
  };
})(jQuery);