выбор href не начинается с http - PullRequest
1 голос
/ 31 мая 2010

используя jQuery, я пытаюсь выяснить все URL-адреса, введенные пользователем, которые не начинаются с http или https, и, наконец, я хочу добавить http ко всем таким URL-адресам, чтобы при щелчке по ним пользователь переходил к правильному сайт вместо неработающей ссылки, вызванной вводом URL без http или https.

Также хотелось бы отметить, что у пользователя есть поле «Веб-сайты, которые ему нравятся», где он вводит веб-сайты, которые его интересуют. Поэтому, если им нравится stackoverflow, они могут написать www.stackoverflow.com, который будет считаться относительной ссылкой без http.

Кроме того, мои требования таковы, что я не могу предложить пользователю ввести http или https, прежде чем URL

Ответы [ 3 ]

4 голосов
/ 31 мая 2010

Если вы хотите «пропатчить» URL-адреса уже отрендеренных тегов привязки, чтобы включить http://,, вы, вероятно, можете просмотреть их примерно так:

$(document).ready( function(){
    $('a:not([href^="http://"]):not([href^="https://"])').each( function(){
        $(this).attr('href', 'http://' + $(this).attr('href'));
    })
})

Редактировать: исправлено использование каждого (). Изменить: исправлено для обработки http и https.

0 голосов
/ 08 ноября 2012

Чисто и правильно

$(document).ready( function(){
     $('a:not([href^="http://"], [href^="https://"])').each( function(){
          $(this).attr('href', 'http://' + $(this).attr('href'));
     });
});
0 голосов
/ 31 мая 2010

Я узнал, что я делал неправильно, я тоже использовал


$(document).ready( function(){ 
    $('a:not([href^="http://"])').attr('href', 'http://' + $(this).attr('href')); 
}) 

, поэтому селектор работал нормально, но 'http://' + $ (this) .attr (' href ') не работал. когда я заменил $ (this) на $ ('a: not ([href ^ = "http://"])') это сработало. Но теперь я запутался, почему $ (this) не будет работать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...