Изменить, к какой переменной добавляется функция - PullRequest
0 голосов
/ 01 марта 2019

Я изо всех сил пытаюсь понять, как изменить, какая переменная добавляется в функцию.

По сути, когда пользователь выбирает отель, его нужно добавить в hotelSelection.Когда они нажимают кнопку «Далее», она обновляет карту с ресторанами, а когда они выбирают рестораны, она должна перейти в restaurantSelection.Это то, что я застрял, меняя его от выбора отеля к выбору ресторана.

Вот фрагмент:

var hotelSelection = "";
var restaurantSelections = "";
var sightSelections = "";

function chooseSelection(resultIndex) {

    var locationName = document.getElementById('locationName-' + resultIndex);

    hotelSelection = `<div class="input-group" id="Hotel-chosen">
                                <li class="list-group-item"> 
                      <strong>${locationName.innerHTML}</strong><br>`;

    var locationRating = document.getElementById('locationRating-' + 
    resultIndex);

    hotelSelection += `rating: ${locationRating.innerHTML}</li>`

    console.log("Hotel Selection: " + hotelSelection);

}

Любая помощь будет очень признательна!

1 Ответ

0 голосов
/ 01 марта 2019

Это дает понять, как функция может общаться.То, что вы делаете, это доступ к переменной в более высоком «замыкании».В этом есть свои плюсы и минусы, и один из минусов, который вы обнаружите сейчас, заключается в том, что он не очень гибкий.

Если вместо этого вы смогли использовать возвращаемое значениефункции, вы будете иметь возможность делать то, что вы говорите.Например:

var hotelSelection = "";
var restaurantSelections = "";
var sightSelections = "";

function chooseSelection(resultIndex) {

    var locationName = document.getElementById('locationName-' + resultIndex);

    var selection = `<div class="input-group" id="Hotel-chosen">
                                <li class="list-group-item"> 
                      <strong>${locationName.innerHTML}</strong><br>`;

    var locationRating = document.getElementById('locationRating-' + 
    resultIndex);

    selection += `rating: ${locationRating.innerHTML}</li>`

    console.log("Hotel Selection: " + hotelSelection);
    return selection;
}

Если вы сделаете это, то, когда вы вызываете функцию, вы просто назначаете возвращаемое значение переменной, например:

hotelSelection = chooseSelection(someIndex);
sightSelections = chooseSelection(someIndex);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...