Получить конкретный текстовый контент из элемента с помощью jQuery - PullRequest
3 голосов
/ 14 февраля 2012

Мне нужно вытащить часть текста из элемента на моей странице, используя jQuery, и я не могу понять, как получить нужный мне кусок.

Вот мой HTML:

<a href="#" class="song">
    Soulstar
    <div>by <span class="artist">Musiq Soulchild</span></div>
</a>

Я хочу вытащить содержимое .artist (в данном случае Musiq Soulchild).Сначала я попробовал это:

var this_artist = $(this).children().text();
alert(this_artist);

Это дает мне by Musiq Soulchild (поскольку this является элементом <a>).Тогда я предположил, что все, что мне нужно было сделать, это указать селектор внутри метода .children(), чтобы сузить его до класса .artist, например:

var this_artist = $(this).children(".artist").text();
alert(this_artist);

Но это дает мне ...ничего такого.Я также пытался $(this).children("span").text(); и также ничего не получал.

Что я делаю не так?

Ответы [ 6 ]

2 голосов
/ 14 февраля 2012

Ваш селектор неверен, поскольку .artist не является прямым потомком элемента a.Вместо этого вам нужно использовать $(this).find():

var this_artist = $(this).find(".artist").text();
alert(this_artist)  

Пример скрипта

2 голосов
/ 14 февраля 2012

.children () пересекает только непосредственных детей - учитывая, что ваша разметка .artist не является непосредственным ребенком. Используйте find () вместо:

var this_artist = $(this).find('.artist').text();
1 голос
/ 14 февраля 2012

Вы должны использовать .find вместо .children. .children ищет ближайших детей, а .find ищет потомков.

0 голосов
/ 14 февраля 2012

использование:

$("#results").on("click","a", function(event){
var myartist = $(this).find('.artist').text();
}); 
0 голосов
/ 14 февраля 2012

Если это объект вашей ссылки, этот код возвращает текст span:

var this_artist = $(this).find('span').text();
alert(this_artist);
0 голосов
/ 14 февраля 2012

или

$(this).find("span.artist")

или

$("span.artist", this)

должны сделать это ... span является дочерним элементом div, а не привязкой.

...