将2个javascript函数合并为1个

Combine 2 javascript functions into 1

本文关键字:1个 合并 函数 2个 javascript      更新时间:2023-09-26

我继承了一些旧代码,我试图清理它,我在网站上使用jQuery,所以它会很好,保持事情干净和简单,通过使用

function address_finder_callback() {
    address_finder_setter('addressPostCode', 'addressLine1', 'addressLine2', 'addressLine3', 'addressLine4');
}
function address_finder_setter(obj0, obj1, obj2, obj3, obj4) {
    var formElement;
    var buttonClicked = document.getElementById('addressFinderPanelForm_buttonClicked').value;
    if (buttonClicked) {
        formElement = 'addressFinderPanelForm_postcode'
        var hiddenField = document.getElementById(formElement).value;
        document.getElementById(obj0).value = hiddenField;
        hiddenField = "";
        formElement = 'addressFinderPanelForm_line0';
        hiddenField = document.getElementById(formElement).value;
        document.getElementById(obj1).value = hiddenField;
        hiddenField = "";
        formElement = 'addressFinderPanelForm_line1';
        hiddenField = document.getElementById(formElement).value;
        document.getElementById(obj2).value = hiddenField;
        hiddenField = "";
        formElement = 'addressFinderPanelForm_line2';
        hiddenField = document.getElementById(formElement).value;
        document.getElementById(obj3).value = hiddenField;
        hiddenField = "";
        formElement = 'addressFinderPanelForm_line3';
        hiddenField = document.getElementById(formElement).value;
        document.getElementById(obj4).value = hiddenField;
        hiddenField = "";
    }
}

我想明白了,并使用jQuery来整理它-

function address_finder_callback() {
    var postCode = $('#addressFinderPanelForm_postcode').val();
    var adressLine1 = $('#addressFinderPanelForm_line0').val();
    var addressLine2 = $('#addressFinderPanelForm_line1').val();
    var addressLine3 = $('#addressFinderPanelForm_line2').val();
    var addressLine4 = $('#addressFinderPanelForm_line3').val();
    $("#addressPostCode").val(postCode);
    $("#addressLine1").val(adressLine1);
    $("#addressLine2").val(addressLine2);
    $("#addressLine3").val(addressLine3);
    $("#addressLine4").val(addressLine4);
}

第一个函数似乎没有意义?

function address_finder_callback(obj0, obj1, obj2, obj3, obj4) {
    var formElement;
    var buttonClicked = document.getElementById('addressFinderPanelForm_buttonClicked').value;
    if (buttonClicked) {
        formElement = 'addressFinderPanelForm_postcode'
        var hiddenField = document.getElementById(formElement).value;
        document.getElementById(obj0).value = hiddenField;
        hiddenField = "";
        formElement = 'addressFinderPanelForm_line0';
        hiddenField = document.getElementById(formElement).value;
        document.getElementById(obj1).value = hiddenField;
        hiddenField = "";
        formElement = 'addressFinderPanelForm_line1';
        hiddenField = document.getElementById(formElement).value;
        document.getElementById(obj2).value = hiddenField;
        hiddenField = "";
        formElement = 'addressFinderPanelForm_line2';
        hiddenField = document.getElementById(formElement).value;
        document.getElementById(obj3).value = hiddenField;
        hiddenField = "";
        formElement = 'addressFinderPanelForm_line3';
        hiddenField = document.getElementById(formElement).value;
        document.getElementById(obj4).value = hiddenField;
        hiddenField = "";
    }
}

并直接调用

可以简化为:

    function address_finder_callback(obj0, obj1, obj2, obj3, obj4) {
            var formElement;
            var buttonClicked = document.getElementById('addressFinderPanelForm_buttonClicked').value;
            if (buttonClicked) {
document.getElementById(obj0).value = document.getElementById(addressFinderPanelForm_postcode).value;
document.getElementById(obj1).value = document.getElementById(addressFinderPanelForm_line0).value; document.getElementById(obj2).value = document.getElementById(addressFinderPanelForm_line1).value;
document.getElementById(obj3).value = document.getElementById(addressFinderPanelForm_line2).value;
document.getElementById(obj4).value = document.getElementById(addressFinderPanelForm_line3).value;
            }
        }

,甚至更多如果你使用jquery和循环,但你得到漂移