Добавить переменные в заголовок с помощью jquery

0

Im пытается получить значение параметра и добавить его в местоположение заголовка.

<select id="time">
<option value="1"> 1 hour</option>
<option value="2"> 2 hours</option>
</select>

Когда опция выбрана из приведенного выше списка, она должна затем добавить ее как переменную get к текущему URL-адресу заголовка, например

заголовок = www.test.com? время = 2

<select id="time2">
<option value="1"> 1 min</option>
<option value="2"> 2 min</option>
</select>

Хотя текущий заголовок является www.test.com?time=2 Если значение выбрано из этого списка, тогда min = 2 следует добавить в текущий заголовок. т.е. - www.test.com?time=2&min=2

(есть несколько вариантов выбора, поэтому, когда каждый из них выбран, как я могу добавить переменную get в текущий заголовок?

$('time').on('change', function (e) 
{?
});
Теги:
header

1 ответ

1

Я бы предложил:

// binding an event-handler to the 'change' event (selecting by class-name):
$('.query').change(function(){
    // retrieving the current hash (though search is, of course, an alternative):
    var query = window.location.hash;
    /* if there is a current hash we apppend the name and value of the
       current select element to that hash:
    */
    window.location.hash = (query.length > 0 ? query + '&' : '') + this.name + this.value;
    // verifying the change/showing what was set/changed:
    console.log(window.location.hash);
/* triggering the change-handler function, this can be omitted if you don't
   want the handler to run on page-load: */
}).change();

В сочетании со слегка измененным HTML:

<select name="hour" class="query">
    <option value="1"> 1 hour</option>
    <option value="2"> hours</option>
</select>

<select name="mins" class="query">
    <option value="1"> 1 min</option>
    <option value="2"> 2 min</option>
</select>

Демо-версия JS Fiddle.

Это обновляет window.location.hash (#time=2), а не window.location.search (?time=2), потому что обновление последнего приведет к перезагрузке страницы (с новой строкой поиска), тогда как обновление hash предотвращает перезагрузку страницы.

Если, однако, перегрузка страницы не является проблемой для вас, вы можете просто использовать window.location.search вместо window.location.hash.

  • 0
    Привет .. Спасибо за ваш ответ .. это работает! как бы то ни было, хотя он продолжает добавлять время = 2, время = 1, время = 1 .. когда я повторно выбираю опцию ... есть ли способ, где я могу изменить значение get для времени, если оно уже существует в хеше местоположения вместо добавить его к существующему?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню