在插件开发中,能不能将要操纵的dom标签预先定义在一个数组a中,然后每次调用的时候初始化函数,然后通过指定指针来操纵dom?

在插件开发中,能不能将要操纵的dom标签预先定义在一个数组a中,然后每次调用的时候初始化函数,然后通过指定指针来操纵dom?

var Settings = (function () {

    var $this = $(this);
    var $block = $this.find(".RegLcon.block"),
        $PhoneNumber = $block.find("input[name='PhoneNumber']"),
        $Email = $block.find("input[name='Email']"),
        $Password = $block.find("input[name='Password']"),
        $CfPassword = $block.find("input[name='PwdConfirm']"),
        $codeVal = $block.find("input[name='codeVal']"),
        $Code = $block.find("input[name='Code']");
    var a = [$PhoneNumber,$Email,$Password,$CfPassword,$codeVal,$Code];
    return function () {
        return a;
    }
})();
$.fn.regUser = function(){
$(Settings()[0]).css("background-color","pink");}
阅读 2.1k
1 个回答

你这样写是可以的,但是不便于后期维护啊。
建议a定义为json对象,下标换成具体的键名。

如下:

...
var $this = $(this);
var $block = $this.find(".RegLcon.block");
var a = {
    $PhoneNumber: $block.find("input[name='PhoneNumber']"),
    $Email: $block.find("input[name='Email']"),
    $Password: $block.find("input[name='Password']"),
    $CfPassword: $block.find("input[name='PwdConfirm']"),
    $codeVal: $block.find("input[name='codeVal']"),
    $Code: $block.find("input[name='Code']")
};
return a;
...

var settings = Setting(); //一次调用,缓存起来
$(settings['$PhoneNumber']).css("background-color","pink");
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题