2017-01-12 2 views
0

Я хочу перейти к конкретному div на моей домашней странице, когда вы выбираете событие изменения. Я хочу получить результат www.mysite.com#i-bc, но между ними добавляется конечная слэш, как www.mysite.com/#i-bc. Я хочу удалить эту конечную косую черту, используя jquery или что-то еще. Вот мой код:Удаление косой черты на www.mysite.com/#i-bc

Сценарий:

$(function(){ 
    $('.toggle-view').on('change', function() { 
     var url = $(this).val(); 
     if (url) { 
      window.location.hash = url; 
     } 
     return false; 
    }); 
}); 

Мой HTML выглядит так:

<select class="toggle-view"> 
    <option value="#i-bc">1</option> 
    <option value="#i-st">2</option> 
    <option value="#i-mm">3</option> 
    <option value="#i-cc">4</option> 
</select> 

<div id="i-bc">some content here </div> 
<div id="i-st">some content here </div> 
<div id="i-mm">some content here </div> 
<div id="i-cc">some content here </div> 

Благодаря InAdvance

+0

Hi Immran, я видел [ваш комментарий] (https://stackoverflow.com/posts/comments/70576165) - почему вам нужно удалить '/' после домена? [Этот вопрос/ответ] (https://webmasters.stackexchange.com/a/73986/47104) и [этот другой вопрос/ответ] (https://webmasters.stackexchange.com/a/33074/47104) описывают это как с символом '/', так и без него, URL_is эквивалентен_. [RFC2616 §3.2.2] (http://tools.ietf.org/html/rfc2616#section-3.2.2) и [RFC3986 §6.2.3] (http://tools.ietf.org/html/rfc3986 # section-6.2.3) предполагают, что конечный '/' является предпочтительным. У вас может быть веская причина - если да, сообщите мне. –

+0

Рад видеть ваш комментарий здесь, я хочу перейти к другому div на той же странице (это моя домашняя страница, которая содержит '/' в конце), когда применяется триггер обмена. Я хочу что-то вроде 'mysite.com # i-bc' или' mysite.com # i-bc/', но не' mysite.com/# i-bc'. –

+0

Символ '/' указывает _path_ и ** должен ** встречаться перед символом '#' (который указывает на _fragment_), если они присутствуют. Вам нужно использовать 'example.com/my/url # abc', а не' example.com # abc/my/url' (это установило бы _fragment_ ['#'] в 'abc/my/url'). [Спецификация _demands_ this] (https://tools.ietf.org/html/rfc3986#section-3); вы не можете изменить порядок. Примечание: Я спросил **, почему ** вам это нужно - ваш код должен по-прежнему работать с '/'. Вы также можете рассмотреть [API истории HTML5] (https://css-tricks.com/using-the-html5-history-api/) - это устраняет необходимость в '#' (_fragments_). –

ответ

0

Better использования window.location.hash. Его лучше, чем href

<script> 
 
    $(function(){ 
 
     $('.toggle-view').on('change', function() { 
 
      var url = $(this).val(); 
 
      if (url) { 
 
       window.location.hash = url; 
 
        } 
 
      return false; 
 
     }); 
 
    }); 
 
</script>

+0

Не работает, кроме того, добавляя все значения опций каждый раз при изменении –

+0

где вы пытаетесь? Он должен работать – ricky

0

Попробуйте это,

$(function(){ 
    $('.toggle-view').on('change', function() { 
     var url = $(this).val(); 
     if (url) { 
      window.location.hash = url; 
     } 
     return false; 
    }); 
}); 

window.location.hash специально используется для воспроизведения с хэшированных URLs.

+0

Да, но как удалить '/' в URL-адрес страницы результата. Я ищу что-то вроде замены этого '/' на '' перед добавлением на страницу uri –

+0

/wont come here в этом случае, – rahulsm

+0

все еще существует. Я не знаю, почему это происходит. есть ли способ удалить вручную, используя скрипт.? Это будет полезно для меня. –

Смежные вопросы