简化jQuery If-Statement

时间:2018-12-07 17:03:24

标签: jquery if-statement simplification

我有这个jQuery if语句。有没有更简单/优雅或更不重复的书写方式?

“如果foo是可见的,请将此HTML元素添加到#message,否则将其他HTML元素添加到#message。”

$(document).ready(function() {
    var $foo= $('#something');
    if ($foo.is(':visible')) {
        $('#message').html('<strong>Yes</strong>, message one.');
    }
    else {
        $('#message').html('<strong>No</strong>, message two.');
    }
});

2 个答案:

答案 0 :(得分:0)

它已经是一个很小的代码块,我认为不可能有很多简化,但是在这里您可以在较早的行中定义$('#message')元素并在多个位置使用它

$(document).ready(function() {
    var $foo= $('#something');
    var $messageBlock = $('#message');

    var $toShow = ($foo.is(':visible'))? '<strong>Yes</strong>, message one.' : '<strong>No</strong>, message two.';
    $messageBlock.html($toShow);

});

答案 1 :(得分:0)

您可以在消息的可变部分设置一些变量,然后将其替换。

$(document).ready(function() {
    var $foo= $('#something'), yesno, msgnum;
    if ($foo.is(':visible')) {
        yesno = 'Yes';
        msgnum = 'one';
    }
    else {
        yesno = 'No';
        msgnum = 'two';
    }
    $('#message').html(`<strong>${yesno}</strong>, message ${msgnum}.`);
});

这使并行性更加清晰。