перейти по ссылке на нажатие кнопки - JQuery - PullRequest
26 голосов
/ 09 февраля 2011

У меня есть скрипт, как показано ниже

$('.button1').click(function() {
    document.location.href=$(this).attr('id');
});

button1 имеет переменные уникальные идентификаторы.при щелчке страница должна перенаправляться на URL "www.example.com/index.php?id=buttonid", но теперь страница перенаправляется только на "button id".

Я хочу добавить строку "www.example.com/index.php?id=" перед текущим URL.Как я могу сделать это возможным?

Ответы [ 5 ]

62 голосов
/ 09 февраля 2011
$('.button1').click(function() {
   window.location = "www.example.com/index.php?id=" + this.id;
});

Прежде всего, использование window.location лучше, так как согласно спецификации document.location значение было доступно только для чтения и может вызвать головную боль в старых / других браузерах. Проверьте заметки @ Страница документа MDC DOM.

И для второго - использование attr метода jQuery для получения идентификатора является плохой практикой - вы должны использовать прямой собственный метод доступа DOM this.id, поскольку значение, присвоенное this, является обычным элементом DOM.

5 голосов
/ 09 февраля 2011
$('.button1').click(function() {
   document.location.href='/index.php?id=' + $(this).attr('id');
});
4 голосов
/ 09 февраля 2011

Вам необходимо указать домен:

 $('.button1').click(function() {
   window.location = 'www.example.com/index.php?id=' + this.id;
 });
2 голосов
/ 09 февраля 2011

Почему бы просто не изменить вторую строку на

document.location.href="www.example.com/index.php?id=" + $(this).attr('id');
0 голосов
/ 09 февраля 2011

Вы можете получить текущий URL с помощью window.location.href, но я думаю, что вам понадобится плагин jQuery для обработки строки запроса: http://plugins.jquery.com/project/query-object

...