6

假设我有以下 jQuery 代码。它工作得很好,但是我需要包含.after($('<div />'))唯一的 ifvar insertAfter等于 true。有没有一种优雅的jQuery方式来做到这一点?

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

4 回答 4

7

试试这个使用三元运算符:

.after(insertAfter ? $('<div />') : '')
于 2012-12-14T14:20:41.973 回答
1

您可以像这样扩展 jQuery 库:

$(function () {
    $.fn.afterif = function (param, condition) {
        if (condition) {
            $(this).after(param);
        }
        return this;
    }
}(jQuery));

并像这样使用它:

var insertAfter = true;
$('#whatEver').afterif($('<div />'), insertAfter);
于 2012-12-14T14:28:59.057 回答
1

几个 jQuery 方法允许传递一个函数func。通常没有明确记录,但从返回undefined就像func一个无操作,即使在像.attr('src', func).

(在这个 setter 示例中,func应该返回您想要'src'设置的任何内容。)

于 2020-06-01T17:46:35.483 回答
0

有很多例子,这里是关于如何检查变量是否定义的堆栈溢出。:

然后你可以使用 break 并继续控制流量。

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

于 2012-12-14T14:26:06.757 回答