代码之家  ›  专栏  ›  技术社区  ›  Ivan

干燥原理:参考jquery选择器避免重复

  •  1
  • Ivan  · 技术社区  · 7 年前

    假设我有一个函数,里面有一个对象

    function MyFunction(){
        var options = {
            placeholder: $('#select option[value="-1"]'),
            first: $('#select option[value="-1"]').next()
        };
    }
    

    你看,jquery对象 $('#select option[value="-1"]') 两者都是复制的 placeholder first 项目。这是有效的,但是phpsorm警告我关于重复的jquery选择器

    有没有方法可以参考 占位符 中的值 第一 项目?排序方式:

    placeholder: $('#select option[value="-1"]'),
    first: this.placeholder.next()
    

    (当然,提供的示例不起作用)

    3 回复  |  直到 7 年前
        1
  •  1
  •   camelsWriteInCamelCase    7 年前

    不使用附加变量:

    function MyFunction(){
        var options = {};
        options.placeholder = $('#select option[value="-1"]');
        options.first = options.placeholder.next();
    }
    
        2
  •  3
  •   Eriks Klotins    7 年前

    这样地?

    function MyFunction(){
        var el = $('#select option[value="-1"]'),
            options = {
                placeholder: el,
                first: el.next()
            };
    }
    
        3
  •  3
  •   Jerod Venema    7 年前

    只需首先将其创建为变量。

    function MyFunction(){
        var selected = $('#select option[value="-1"]');
        var options = {
            placeholder: selected,
            first: selected.next()
        };
    }