如何在本机字符串原型函数中使用 jQuery?

发布于 2024-12-25 12:22:14 字数 402 浏览 1 评论 0原文

例如,我想知道如何在 String 对象的本机原型函数中使用 jQuery

我试过了:

String.prototype.jQ = function() {
    var $currentObject = $( this );

    return ( $currentObject.length ) ? $currentObject.val() : this;
};

var test = "#txtEmail";
alert( test.jQ() );

没有运气。有什么建议吗?

我完全知道我可以使用 $( test ).val() 但我想知道我是否可以按照自己的方式来做。

谢谢!

I would like to know how I could use jQuery inside a native prototype function of the String object for instance.

I've tried:

String.prototype.jQ = function() {
    var $currentObject = $( this );

    return ( $currentObject.length ) ? $currentObject.val() : this;
};

var test = "#txtEmail";
alert( test.jQ() );

With no luck. Any suggestion?

I am perfectly aware that I could use $( test ).val() but I would like to know if I can do it my way.

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

只有一腔孤勇 2025-01-01 12:22:14

奇怪的是,jQuery 只接受原始字符串值作为选择器,而不接受 String 对象,这就是 String 原型方法中的 this 。您可以使用 .valueOf() 获取原语:

String.prototype.jQ = function() {
    var $currentObject = $(this.valueOf());

    return $currentObject.length ? $currentObject.val() : this;
};

这是一个演示。

Oddly enough, jQuery only accepts primitive string values as selectors, not String objects, which is what this is in a String prototype method. You can use .valueOf() to get the primitive:

String.prototype.jQ = function() {
    var $currentObject = $(this.valueOf());

    return $currentObject.length ? $currentObject.val() : this;
};

Here's a demo.

快乐很简单 2025-01-01 12:22:14

$(这+“”); // 因为“this”当前是一个字符数组

String.prototype.jQ = function() {
    var $currentObject = $( this + "");

    return ( $currentObject.length ) ? $currentObject.val() : this;
};

var test = "#txtEmail";
alert( test.jQ() );

$( this + ""); // because "this" is currently an array of characters

String.prototype.jQ = function() {
    var $currentObject = $( this + "");

    return ( $currentObject.length ) ? $currentObject.val() : this;
};

var test = "#txtEmail";
alert( test.jQ() );
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文