2010-08-05 2 views
4

Это вызов для любого ниндзя Javascript/JQuery там:Найти ссылки в HTML-документе с помощью JavaScript/JQuery

Что является лучшим способом (с использованием вышеупомянутых языков), чтобы найти все ссылки в HTML документ и вернуть их все?

Другими словами, функция, которая нравится - findLinks (document.html.innerHTML) что бы вернуть все ссылки, найденные в этом формате HTML.

Спасибо,

DLiKS

+0

'document.html.innerHTML'? Таким образом, стереть прослеживаемую DOM в пользу своего представления строки html, которое вам нужно проанализировать? –

+0

@Cres: Не дай Бог, OP может захотеть передать другие строки HTML в функцию ... :-) –

ответ

7

Ну, вы могли бы поиграть с короткой библиотекой (и это может быть хорошей идеей сделать это, если вы в конечном итоге хотите делать интересные вещи, чтобы манипулировать результатами), но просто чтобы получить ссылки, я думаю, d прилипают к DOM 0:

document.links 
+1

+1, первое, что я подумал. –

+1

@Andy E: Благодарим за то, что сообщили нам! –

+0

@Crescent: Тебе очень приятно, всегда приятно видеть поклонника :-) –

2

Чтобы получить все hrefs из существующих элементов якоря, вы можете сделать следующее, который будет возвращать их как массив:

var links = $("a").map(function() { 
       return this.href; 
      }).get(); 

Если вы только захотите захватить каждый элемент привязки и затем с ними что-то сделать, вам просто нужно будет их выбрать:

$("a").hide(); // or whatever 
+0

Не находит: '

Your link: http://www.address.com
' =) – Cipi

+0

@Cipi - если это требование, то это, вероятно, нуждается в регулярном выражении или таком. – karim79

0

у меня есть букмарклет, который находит все гиперссылок и записывает их в HTML-страницы:

JavaScript: ctDL = document.links; ctWI = открыт ('',» ' 'ширина = 400, высота = 300, скроллбары, изменяемый, MenuBar'); ctDO = ctWI.document; ctDO.writeln (''), для (CTI = 0;% 20ctI')} пустоты (ctDO.close ())

0

Это либо я не понимаю вопрос, или это не так уж много вызов:

function findLinks(innerHTML){ 
    var fragment = document.createElement('div'); 
    fragment.innerHTML = innerHTML; 

    var links = []; 
    fragment.find('a').each(function(index, element){ 
     links.push($(element).attr('href')); 
    }); 
    return links; 
} 
Смежные вопросы