假设我有以下jQuery代码。它工作得很好,但只有当.after($('<div />'))
等于true时我才需要包含var insertAfter
。有一种优雅的jQuery方式吗?
$('#whatEver')
.parent()
.show()
.width(123)
.addClass('bebo')
.before($('<div />'))
.after($('<div />'))
.parent()
.addClass('bla');
答案 0 :(得分:6)
使用三元运算符尝试:
.after(insertAfter ? $('<div />') : '')
答案 1 :(得分:1)
您可以像这样扩展jQuery库:
$(function () {
$.fn.afterif = function (param, condition) {
if (condition) {
$(this).after(param);
}
return this;
}
}(jQuery));
并像这样使用它:
var insertAfter = true;
$('#whatEver').afterif($('<div />'), insertAfter);
答案 2 :(得分:0)
有很多例子,这里有关于如何检查变量是否被定义的堆栈溢出。:
然后你可以使用break并继续控制流程。
答案 3 :(得分:0)
几个jQuery方法允许传递一个函数。经常没有明确记录,但是返回undefined
就像是无操作,即使在.attr('src', func)
这样的设置器中也是如此。