Функция jQuery's .append()
может принимать несколько аргументов, как плоских, так и массивных. У меня есть некоторый код, где нужно добавить 3 пунктов, один из которых не может существовать, как:Есть ли способ передать «отсутствующий» объект в .append()
whatever.append(always).append(maybe).append(alwaysToo);
/* or */
whatever.append(always, maybe, alwaysToo);
/* or */
var arrayOfThoseThree = [ always, maybe, alwaysToo ];
whatever.append(arrayOfThoseThree);
Я не могу сделать из Документов Jquery, что, если что-либо, значение maybe
должно сказать "просто игнорировать это один":
maybe = '';
maybe = null;
maybe = undefined;
maybe = ???
как в:
maybe = needMaybe ? $('<blah...>') : ignoreThisValue;
Я мог бы, конечно, сделать что-то вроде:
whatever.append(always);
if (maybe) whatever.append(maybe);
whatever.append(alwaysToo);
но это некрасиво (особенно, как это является частью более крупной цепи).
И я мог экспериментировать с разными значениями, пока не найду тот, который «работает», но я надеялся, что существует «официальный» документированный способ, который не будет работать в будущем, потому что я использовал " недокументированная функция ".
Направьте меня в правильном направлении?
[EDIT]
мне было интересно, в общем, но конкретный пример передо мной:
var titl = this.dataset.title; /* optional */
var ifr = $('<iframe>');
var bas = $('<base href="' + document.baseURI + '">');
var ttl = titl ? $('<title>' + titl + '</title>') : null; /* HERE */
var lnk = $('<link rel="stylesheet" href="/css/print.css">');
/* ... */
ifr.contents().find('head').append(bas, ttl, lnk);
Что произойдет, если вы это проверить? – Mouser
Не могли бы мы увидеть больше вашей логики. Почему переменные имеют значение null/empty? –
тестирование может найти способ, который «работает», но он не скажет мне, есть ли поддерживаемый способ, который не нарушит таинственности в будущем. –