Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何重构长if语句?_Javascript_Jquery_Refactoring - Fatal编程技术网

Javascript 如何重构长if语句?

Javascript 如何重构长if语句?,javascript,jquery,refactoring,Javascript,Jquery,Refactoring,我有一个很长的if语句,我想重构它。该语句侦听单击,然后根据五个文本框中是否包含任何内容更新其中一个文本框。如何更改代码以提高效率 $('#img1').click(function() { if ($('#card1').val().length === 0) { $('#card1').val('A feeling of warmth'); } else if ($('#card2').val().length === 0) { $('#card2').val('A fee

我有一个很长的if语句,我想重构它。该语句侦听单击,然后根据五个文本框中是否包含任何内容更新其中一个文本框。如何更改代码以提高效率

$('#img1').click(function() {
if ($('#card1').val().length === 0) {
    $('#card1').val('A feeling of warmth');
} else if ($('#card2').val().length === 0)  {
    $('#card2').val('A feeling of warmth');
} else if ($('#card3').val().length === 0){
  $('#card3').val('A feeling of warmth');
} else if ($('#card4').val().length === 0){
  $('#card4').val('A feeling of warmth');
} else if ($('#card5').val().length === 0){
  $('#card5').val('A feeling of warmth');
}

});
你可以使用一个循环

$('#img1').click(function() {
    var items = ["#card1", "#card2", "etc"];
    for(var i=0;i<items.length;i++){
        if ($(items[i]).val().length === 0) {
            $(items[i]).val('A feeling of warmth');
        }
    }
});
它至少更容易阅读。此外,如果你的按钮总是卡+一个数字,你可以使它更简单,不容易阅读,只是少行和维护

$('#img1').click(function() {
    for(var i=0;i<=5;i++){
        if ($("#card" + i).val().length === 0) {
            $("#card" + i).val('A feeling of warmth');
        }
    }
});
你可以使用一个循环

$('#img1').click(function() {
    var items = ["#card1", "#card2", "etc"];
    for(var i=0;i<items.length;i++){
        if ($(items[i]).val().length === 0) {
            $(items[i]).val('A feeling of warmth');
        }
    }
});
它至少更容易阅读。此外,如果你的按钮总是卡+一个数字,你可以使它更简单,不容易阅读,只是少行和维护

$('#img1').click(function() {
    for(var i=0;i<=5;i++){
        if ($("#card" + i).val().length === 0) {
            $("#card" + i).val('A feeling of warmth');
        }
    }
});
})


})

您似乎正在使用JQuery。可以使用选择器和筛选器隔离第一个空项:

$'img1'。单击函数{ $'输入:文本[id^=卡]' .filterfunction{返回$this.val==;} 第一 “一种温暖的感觉”; }; 点击我
看起来您正在使用JQuery。可以使用选择器和筛选器隔离第一个空项:

$'img1'。单击函数{ $'输入:文本[id^=卡]' .filterfunction{返回$this.val==;} 第一 “一种温暖的感觉”; }; 点击我 给所有的卡片上相同的等级。 然后使用选择器$'.yourclass'

现在对each.each函数使用jQuery来迭代所有元素。在循环中检查值,将其设置为所需的值,并在设置值时返回false,因为此出口是循环

$('.yourclass').each(
    function () {
        if (this.val().length === 0) {
            this.val('your value');
            return false; // exit loop
        }
    });
给所有的卡片上相同的等级。 然后使用选择器$'.yourclass'

现在对each.each函数使用jQuery来迭代所有元素。在循环中检查值,将其设置为所需的值,并在设置值时返回false,因为此出口是循环

$('.yourclass').each(
    function () {
        if (this.val().length === 0) {
            this.val('your value');
            return false; // exit loop
        }
    });