Написание правильного селектора jquery для извлечения текста после тега разрыва, но внутри div - PullRequest
3 голосов
/ 19 декабря 2011

У меня есть код в формате ниже, который повторяется по всей моей странице:

<div class="video-description-secondary" style="display:block;">
  <h2 class="two">
 Some title text
  </h2>
  <br/>
 Some description text
</div>

Вот проблема, с которой я столкнулся: я хочу получить текст описания (после тега br и дозакрывающий тег div) с помощью селектора jquery.Я не уверен, как написать правильный селектор jquery для извлечения этого текста, так как сам текст не находится внутри его собственного тега.Мне нужно применить некоторый код к этому тексту, чтобы я мог правильно реализовать ссылку «читать больше / меньше».

Любая помощь будет великолепной.

Ответы [ 2 ]

3 голосов
/ 19 декабря 2011

Хотелось бы что-нибудь подобное для вас?Технически он захватывает все, что не находится внутри дочерних тегов, в отличие от того, что происходит после перерыва.

http://jsfiddle.net/aMKuY/2/

 var foo = $('.video-description-secondary').clone().children().remove().end().text();

Альтернативное решение

Это дает вам немного больший контроль над тем, чтовозвращаетсяПолучить все текстовые узлы, а затем захватить последний.

http://jsfiddle.net/aMKuY/3/

var textNodes = $('.video-description-secondary').contents().filter(function() {
    return this.nodeType == Node.TEXT_NODE;
});

var val = textNodes[textNodes.length - 1].nodeValue;
0 голосов
/ 19 декабря 2011

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

Так что лучше:

<div class="video-description-secondary" style="display:block;">
  <h2 class="two">
 Some title text
  </h2>
  <br/>
  <span class='special'>Some description text</span>
</div>

к которому вы можете получить доступ как:

$('.special').text();

намного чище.

...