Как извлечь текст между <a></a> - PullRequest
1 голос
/ 06 августа 2009

Я должен использовать jQuery в первый раз ....

<a class="Tag Resource" href="http://localhost/" 
resource="http://localres/" property="prop">test</a>

Я пытался извлечь текст, используя var = $('a').find('Tag Resource').text(); и var = $('a').find('Tag Resource').html();, но это не работает. Мне нужно "проверить" как обычный текст.

Может кто-нибудь сказать мне, как это сделать?

Заранее спасибо

Ответы [ 7 ]

7 голосов
/ 06 августа 2009

Я думаю, что вы ищете:

var t = $("a.Tag.Resource").text();

означает теги, которые имеют и классы Tag и Resource. Метод find () предназначен для поиска поддеревьев элементов.

5 голосов
/ 06 августа 2009

Вот, пожалуйста ( живое демо ):

$(document).ready(
  function (){ 
    alert(  $('a.Tag.Resource').html()  );  
});

Ваша проблема либо в том, что вы хотели один класс, но использовали пробел, чтобы их стало два; или что при обращении к классам с селектором jquery вам необходимо ставить перед ними префикс.

В любом случае приведенный выше код поможет. Если вы действительно хотели один класс, измените его на $('a.Tag-Resource')...

1 голос
/ 06 августа 2009

Я думаю, что проблема в синтаксисе вашего выражения поиска.

Обновление : На самом деле, вы вообще не хотите искать, вам нужен фильтр. Find будет выбирать только потомков элементов a, а не сами элементы.

Я протестировал пример строки ниже.

Из примера здесь , похоже, что вы хотите

var text = $('a').filter('.Tag.Resource').text();
0 голосов
/ 06 августа 2009

Ну, вам не нужно использовать JQuery ...

var text, links = document.links;
for (var i = 0; i < links.length; i++) {
   if (links[i].className == 'Tag Resource') {
      text = links[i].innerText;
      break;
   }
}
alert(text);
0 голосов
/ 06 августа 2009

Помните, что имена классов могут повторяться на странице, а пробелы указывают на два класса, примененных к элементу. Вам не гарантируется, что один элемент будет иметь этот класс, поэтому .text () может вернуть объединенный текст всех соответствующих элементов.

$(".Tag.Resource").text();
0 голосов
/ 06 августа 2009

Не думаю, что вы можете иметь имена классов с пробелами в. Вы добавили к тегу 2 класса "Tag" и "Resource", и ваш селектор поиска не найдет это.

0 голосов
/ 06 августа 2009
var text = "";
$("a").each(function(){
  text += $(this).html() + " " + $(this).attr("resource");
});
alert(text);
...