jQuery条件链接

时间:2012-12-14 14:17:23

标签: jquery

假设我有以下jQuery代码。它工作得很好,但只有当.after($('<div />'))等于true时我才需要包含var insertAfter。有一种优雅的jQuery方式吗?

$('#whatEver')
    .parent()
    .show()
    .width(123)
    .addClass('bebo')
    .before($('<div />'))
    .after($('<div />'))
    .parent()
    .addClass('bla');

4 个答案:

答案 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并继续控制流程。

http://www.w3schools.com/js/js_break.asp

答案 3 :(得分:0)

几个jQuery方法允许传递一个函数。经常没有明确记录,但是返回undefined就像是无操作,即使在.attr('src', func)这样的设置器中也是如此。