Supposons que j'ai une fonction avec un objet à l'intérieur

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

Vous voyez, l'objet jQuery $('#select option[value="-1"]') est dupliqué à la fois dans les éléments placeholder et first. Cela fonctionne, mais PHPStorm me prévient du sélecteur jQuery dupliqué

Existe-t-il un moyen de référencer la valeur placeholder dans l'élément first? Trier comme:

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

(bien sûr, l'exemple fourni ne fonctionne pas)

1
Ivan 23 mai 2018 à 00:47

3 réponses

Meilleure réponse

Sans utiliser de variable supplémentaire:

function MyFunction(){
    var options = {};
    options.placeholder = $('#select option[value="-1"]');
    options.first = options.placeholder.next();
}
1
camelsWriteInCamelCase 22 mai 2018 à 22:05

Créez-le simplement en tant que variable.

function MyFunction(){
    var selected = $('#select option[value="-1"]');
    var options = {
        placeholder: selected,
        first: selected.next()
    };
}
3
jvenema 22 mai 2018 à 21:51

Comme ça?

function MyFunction(){
    var el = $('#select option[value="-1"]'),
        options = {
            placeholder: el,
            first: el.next()
        };
}
3
Eriks Klotins 22 mai 2018 à 21:50