jQuery的.append()
函数可以接受多个参数,无论是平面还是数组。我有一些代码,我需要追加3个项目,其中一个可能不存在,如:有没有办法将'missing'对象传递给.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);
但是这难看(尤其是因为这是一个较大的链的一部分)。
我可以尝试不同的值,直到找到一个“工作”,但我希望有一个“官方”记录的方式,不会失败未来一天的工作,因为我使用的是“无证的功能“。
指向正确的方向吗?
[编辑]
我想一般,但在我面前的具体的例子是:
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
我们能否看到更多的逻辑?为什么变量会保持一个空/空值? –
测试可能会找到一种“有效”的方式,但它不会告诉我是否有支持的方式在未来不会神秘破坏。 –