Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Выбрать ссылку и выполнить по ней переход (https://javascript.ru/forum/misc/33313-vybrat-ssylku-i-vypolnit-po-nejj-perekhod.html)

djonA 18.11.2012 23:42

Выбрать ссылку и выполнить по ней переход
 
Ребят подскажите, есть код, который выводит ссылку в теге <a> с текстом, надо отобрать саму ссылку из кода, и выполнить по ней переход.

Вот сам код:
$("#searchstring").keypress(function(e) {
  if (e.which == 13) { alert($(this).val()); return false; }; 
});


Он выводит такст следующего характера:
<a href="ссылка">текст</a>


Как доработать код что бы оно не выводило ссылку с текстом а выполняло именно переход по ней??


Пробовал так:
$("#searchstring").keypress(function(e) {
  if (e.which == 13) { window.location=$(this).find("a").attr("href"); return false; }; 
});
- не работает

melky 19.11.2012 00:15

Цитата:

Сообщение от djonA
window.location

location.href

djonA 19.11.2012 00:19

При переходе пишет: undefined

Пробую так:
$("#searchstring").keypress(function(e) {
  if (e.which == 13) { window.location.href=$(this).find("a").attr("href"); return false; }; 
});



Может что то не так делаю???

djonA 19.11.2012 00:29

Странно что если я выполняю такой запрос:
$("#searchstring").keypress(function(e) {
  if (e.which == 13) { alert($(this).val()); return false; }; 
});
то выводит html код, вида <a href="урл">текст</a>

а если я отбираю из этого текста именно ссылку
$("#searchstring").keypress(function(e) {
  if (e.which == 13) {  window.location.href=$(this).find("a").attr("href"); return false; }; 
});
, оно пишет почему-то undefined

walik 19.11.2012 00:43

Вы совсем не видите разницу между
$(this).val()

и
$(this).find("a")

?

Вы имеете строку, вам надо из нее получить ссылку.
var l = '<a href="javascript.ru">bla bla bla</a>';
alert(l.match(/href="([^"]+)/)[1]);


Для вашего кода будет примерно так:
var link = $(this).val().match(/href="([^"]+)/);
location.href = link[1];

djonA 19.11.2012 01:13

var l = '<a href="javascript.ru">bla bla bla</a>';
	alert(l.match(/href="([^"]+)/)[1]);
прекрастно работает

var link = $(this).val().match(/href="([^"]+)/);
location.href = link[1];
- не работает и все хоть убей...

что делаю не так??

djonA 19.11.2012 01:25

Еще раз проверил:
var l = '<a href="javascript.ru">bla bla bla</a>';
	alert(l.match(/href="([^"]+)/)[1]);
работает отлично:

var link = $(this).val().match(/href="([^"]+)/);
location.href = link[1];
- не хочет рабатать

попробовал такой вариант:
var link = $(this).val().match(/href="([^"]+)/);
alert( link[1]);


тоже не работает

Подскажите что не так?

walik 19.11.2012 01:55

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>
<input type='text' value='<a href="http://javascript.ru">Link</a>' />
<script>
	var link = $('input').val().match(/href="([^"]+)/);
	alert( link[1]);
</script>


Приведите живой пример где не работает

djonA 19.11.2012 02:03

оиск
нужно что бы срабатывал при нажатии enter

пишу

$("#searchstring").keypress(function(e) {
  if (e.which == 13) {  var link = $('input').val().match(/href="([^"]+)/);
	    alert( link[1]);  }; 
});

djonA 19.11.2012 02:04

пишу скажем wlx и жму enter, надо что бы переходило к урлу данного товара

именно по enter'y, с переходом по клику мышкой уже разобрался


Часовой пояс GMT +3, время: 00:53.