1

Please consider the following javascript and html below.
When addAnotherAddress() is run the first time, I'm expecting that all of the 1's inside <div class="previous_address1"> will be replaced with 2's and then that html will be appended to <div id="previous_addresses"> but that's not happening when html.replace(pattern, current_address + 1) runs.

What am I doing wrong here?

Javascript

var current_address = 1; // Used when adding in previous address entries

function addAnotherAddress() {
    var pattern = '/' + current_address + '/g';
    var html = $('.previous_address' + current_address).html();

    html = html.replace(pattern, current_address + 1);

    $('#previous_addresses').append(
        '<div class="previous_address' + (current_address + 1) + '">' + html + '</div>' 
    );
    current_address += 1;
}

Html

<div id="previous_addresses">
    <span class="text_line">
    <u>Previous Addresses for Past 5 Years</u>
    </span>
    <div class="previous_address1">
    <span class="text_line">
        <i>Address 1</i>
    </span>
    <span class="text_line">
        <label for="previous_street1">Street:</label>
        <input type="text" id="previous_street1" />
    </span>
    <span class="text_line">
        <label for="previous_city1">City:</label>
        <input type="text" id="previous_city1" />
    </span>
    <span class="text_line">
        <label for="previous_state1">State:</label>
        <input type="text" id="previous_state1" />
    </span>
    <span class="text_line">
        <label for="previous_zip1">Zip:</label>
        <input type="text" id="previous_zip1" />
    </span>
    <span class="text_line">
        <label for="previous_county1">County:</label>
        <input type="text" id="previous_county1" />
    </span>
    </div>
</div>

1 Answer 1

1

You can not use directly a regexp pattern in a string format, you have to evaluate it :

html = html.replace(new RegExp(current_address, "g"), current_address + 1);
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.