如何检索函数被调用的元素的id *没有*使用'这个'变量

时间:2016-02-04 05:49:13

标签: javascript jquery this jslint

我试图取悦JSLint,除非在特殊情况下,否则不要使用this。我有一个原始的功能,如下:

$.fn.extend({
    my_original_function: function ([arguments]){
        [arbitrary routine]
    }
});

...在ID选择器上调用如下:

$('#my_id').my_original_function([arguments]);

在我原来的函数版本中,我在其中使用this来返回函数运行的选定DOM元素。但是,JSLint并不喜欢它,所以我试图找到一种方法来引用#my_id(在这个例子中)函数被调用的函数...不使用this

这似乎更像是一场学术活动,但是我不知道如何在不使用this的情况下检索函数中的id。有任何想法吗?

*问题中的功能*

它是用于在单击时切换文本链接的切换功能。这是this的原始版本:

$.fn.extend({
    toggleText: function(open, close) {
        var isClicked = false;
        var that = $(this);
        $(this).click(function () {
            if (isClicked) {
                that.text(open);
                isClicked = false;
            } else {
                that.text(close);
                isClicked = true;
            }
        });
        return $(this);
    }
});

$('#id_one').toggleText("Toggle Text 1", "Toggle Text 2");
$('#id_two').toggleText("Hello", "Goodbye");

1 个答案:

答案 0 :(得分:0)

$.fn.extend({
    toggleText: function(open, close, that) {...

$('#id_one').toggleText("Toggle Text 1", "Toggle Text 2", $('#id_one'));