【发布时间】:2014-05-04 14:47:53
【问题描述】:
我有一个网页,根据一些布尔标志,它将各种元素附加到 HTML 页面。
为了使代码简洁,我尽量使用三元运算符 - 以节省大量 if 语句。
但是,我想知道在使用三元运算符时,如果我的三元运算符失败,不向动态创建的元素附加任何元素(如果这有意义的话)的最佳做法是什么。即:
$('<div>').append(
(myBooleanFlag ? $('<p>Some child element</p>') : /*What here???*/)
);
我有以下三个解决方案,但我不知道哪个最好,是否应该避免:
附加一个空的 jQuery 对象——这似乎是正确的做法,因为这意味着两个结果都是 jQuery 对象类型:
$('<div>').append(
(myBooleanFlag ? $('<p>Some child element</p>') : $())
);
一个空字符串,无论如何这似乎是错误的,因为它们不是同一类型:
$('<div>').append(
(myBooleanFlag ? $('<p>Some child element</p>') : '')
);
追加null - 这似乎合乎逻辑,但我不想引起任何类型的错误:
$('<div>').append(
(myBooleanFlag ? $('<p>Some child element</p>') : null)
);
那么你说哪个最好?
【问题讨论】:
-
使用
ifstmt,如if(myBooleanFlag ){$('<div>').append( ('<p>Some child element</p>') ); -
老实说,我相信
if语句比(foo ? $("<bar />") : undefined)更具可读性。
标签: jquery append ternary-operator