Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取jQuery元素或值的方法_Javascript_Jquery - Fatal编程技术网

Javascript 获取jQuery元素或值的方法

Javascript 获取jQuery元素或值的方法,javascript,jquery,Javascript,Jquery,我设置了一个类,允许我获取输入/选择元素的值或元素本身: My.Class = { property: function(e){ var t = '#element_id'; return My.Helper.fetch(t, e); } } My.Helper = { fetch: function(t,e){ if (e == true) { return jQuery(t); }

我设置了一个类,允许我获取输入/选择元素的值或元素本身:

My.Class = {
    property: function(e){
        var t = '#element_id';
        return My.Helper.fetch(t, e);
    }
}
My.Helper = {
    fetch: function(t,e){
        if (e == true) {
            return jQuery(t);
        };
        return jQuery(t).val();
    }
}


var element = My.Class.property(true);
var elementValue = My.Class.property();
这非常有效,但当我有几十个属性时,代码会重复很多次:

My.Class = {
    property: function(e){
        var t = '#element_id';
        return My.Helper.fetch(t, e);
    },
    property_b: function(e){
        var t = '#element_id_b';
        return My.Helper.fetch(t, e);
    },
    property_c: function(e){
        var t = '#element_id_c';
        return My.Helper.fetch(t, e);
    },
    property_d: function(e){
        var t = '#element_id_d';
        return My.Helper.fetch(t, e);
    }
}

我怎样才能构造这些属性而不必经常重复我自己?请记住,我的示例属性名和元素名并不总是一致的。

这似乎应该有一个
get\u属性(selector\u string)
方法来为您执行此操作。另一种选择是,在实例化时,对象可以得到一个元素列表,如果DOM发生更改,您可以“reget”这些元素

为什么不将选择器作为参数传递给属性方法?无论如何,我看不出你所有代码的任何用途:
jQuery(“#element_id”)
jQuery(“#element_id”).val()
都不够为什么不干脆
var element=My.Helper.fetch(“#element_id”),true我知道您创建这些方法是为了获取对某个元素的引用或获取该元素的值,但为什么不使用Wolff已经指出的方法呢?有什么特别的原因吗?而且你的代码看起来是重复的,你的
属性
方法中唯一改变的就是选择器。为什么不将选择器传递给一些通用方法,比如
getProperty(选择器)
?另外,我认为您不需要布尔值来决定是返回一个元素还是返回一个值,在这两种情况下,您都在创建一个$object,那么为什么不重新使用第一个对象并使用该元素引用来使用
element.val()获取值呢所有优点。谢谢@仅仅调用通用jQuery方法是不够的。某些属性是元素组,这些元素可能存在于任意数量的其他属性中。一直单独调用每个元素比我现在拥有的要重复得多。当我需要得到一组元素时,拥有这样的通用方法会让事情变得非常混乱<代码>获取属性(“#选择器a、#选择器b、#选择器c、#选择器d、#选择器e”)
变得非常冗长。代码的要点是能够使用
My.Class.group_a(true)
来获取一组元素,或者使用
My.Class.group_a()
来获取元素的值(有时是单独的,有时是作为运行总数)。