2014-08-29 3 views
0

Я использую это, чтобы вернуть ссылки в тексте.jquery найти ссылки в блоке текста

$links = $('.sceneText').find("a").attr('href'); 
console.log($links); 

Он находит первый, но после него. В этом блоке текста есть 3. Любая идея, как я могу найти все ссылки в каком-то тексте?

ответ

1

Чтобы получить массив из href с:

var hrefArray = $('.sceneText a').map(function(){ 
    // will generate an array of absolute URLs: 
    return this.href; 
}).get(); 

Чтобы получить только содержание href атрибуты:

var hrefArray = $('.sceneText a').map(function(){ 
    // will get the text from the href attribute: 
    return this.getAttribute('href'); 
}).get(); 
+0

Обе работы, но это был лучший ответ для моих нужд. Благодаря! – user5839

+0

Ты очень рад, я рад помочь! –

+1

О, очень приятно ... Это тоже будет полезно для меня -! –

2

Бросьте в там each -

$('.sceneText').find("a").each(function() { 
    console.log($(this).attr('href')); 
} 

Однако, это будет работать только если ваш DOM дерево выглядит следующим образом:

<div class="sceneText"> 
    <a></a> 
    <a></a> 
    <a></a> 
    <a></a> 
</div> 

Если у вас есть .sceneText вокруг каждого a, то есть:

Затем вам нужно сделать, это:

$('.sceneText').each(function(){ 
    console.log($(this).find("a").attr("href")); 

}); 

Или, если вы играете с селекторов, вероятно, можно обойтись без использования find() вообще:

$('.sceneText > a').each(function(){ 
    console.log($(this).attr("href")); 

}); 
1

Вы можете пропустить их так.

$links = $('.sceneText').find("a").attr('href'); 

    for(var i = 0; i < $links.length; i++) { 
     console.log($links.get(i)); 
    } 
Смежные вопросы