1

jquery を使用して、現在の html ページにあるすべてのハイパーリンクを取得する必要があります。正規表現を使用してそれを行うにはどうすればよいですか? また、リストにすべてのhrefを保存するためにjavascriptでコレクションを使用できますか?

4

6 に答える 6

2

シンプルな各ループを使用できます。

// For each <a href=""> tag...
$('a').each(function(){
    // Get the url
    var href = $(this).attr('href')
    // alert it or do sth with it
    alert( href ); 
})
于 2012-07-11T09:24:37.547 に答える
1

jQuery$('a')を使用すると、あなたのためにそれを行います

すべてのアンカー要素を反復する

var hrefArr = [];
$('a').each(function(){
  //hrefArr.push($(this).attr('href')); 
  hrefArr.push(this.href); // this would be bit faster then the statement above it
});

OPによるコメントの編集、文字列内のアンカータグの検索にhtmlが含まれています

str = "<div><a href='local1'></a><a href='local2'></a></div>"
var hrefArr = [];
$(str).filter('a').each(function(){
    hrefArr.push(this.href); 
});​
于 2012-07-11T09:23:58.377 に答える
0

「javascriptのコレクション」が配列を意味する場合、これを行うことができます:

var hrefs = [];
$("a").each(function() {
    hrefs.push(this.href);
});
// hrefs array now contains all the hrefs

.each()コールバック関数内ではthis.href、リンクをクリックした場合にたどられる完全な URL が返される可能性があります。つまり、href="test.htm"として返されhttp://yourdomain/test.htmます。属性の文字どおりビットだけが必要な場合は、 を使用します$(this).attr("href")

そのような処理を行うために正規表現を使用することはありません。

于 2012-07-11T09:27:08.833 に答える
0

すべてのアンカーは非常に簡単です

$("a").each(function(){
  alert( $(this).attr("href") );
})
于 2012-07-11T09:24:16.083 に答える
0

これにより、ページ上のすべてのハイパーリンクが表示されます

$('a')

これにより、hpyerlinks の hrefs のコレクションが得られます

var hrefs = new Array();
$('a').each(function() {
    hrefs.push(this.attr('href'));
});
于 2012-07-11T09:24:38.530 に答える
0

これを試して:

var link = "";
$("a").each(function() {
    link += $(this).attr("href"); 
});
alert(link);
于 2012-07-11T09:41:16.963 に答える