你能在jQuery中扩展val()函数吗?

有没有办法在jQuery中扩展val()函数。

基本上,我想要做的是设置一个类变量,如果有内容被动态输入到输入中。

通常会是这样的

var thisVal = 'Hello World'; $('#myInput').val(thisVal).addClass('dark'); 

如果有值,则告诉val()函数始终将类“dark”添加到输入中,如果它为空则将其删除。

可能?

尝试

 $.fn.xval = function () { return this.toggleClass(arguments.length).val.apply(this, arguments); }; 

演示: http : //jsfiddle.net/mattball/v9YFu/

 $.fn.darkVal = function (value) { return this.addClass('dark').val(value); }; 

可以这样做:

 var oldVal = $.fn.val; $.fn.val = function(value) { $(this).addClass("dark"); return oldVal.apply(this, arguments); }; 

但我强烈建议您不要使用它,因为设置元素的值与设置CSS属性无关。 val设置值,就是这样。 你能做的是:

 $("#someInput").change(function() { if ($(this).text().length > 0) { $(this).addClass("dark"); } else { $(this).removeClass("dark"); } }); 

每当更改值时,将调用您传递给更改的函数 – 以编程方式或由用户更改( 请参阅文档 )。 通过这种方式,代码变得更具可读性和可理解性,使调试更容易。