Разбор строки для текста между div - PullRequest
0 голосов
/ 28 января 2010

У меня есть строка HTML-текста, хранящегося в переменной:

var msg = '<div class="title">Alert</div><div class="message">New user just joined</div>'

Я хотел бы знать, как я могу отфильтровать "Новый пользователь только что присоединился" из вышеуказанной переменной в jQuery / Javascript, чтобыЯ могу присвоить заголовку документа только сообщение.

Спасибо.

Ответы [ 2 ]

5 голосов
/ 28 января 2010

Как это:

document.title = $(msg).filter("div.message").text();

Обратите внимание, что если сообщение изменяется для включения в элемент, вам нужно заменить filter на children.

РЕДАКТИРОВАТЬ : Похоже, что div, который вы хотите, вложен в другие элементы.
Если это так, вы можете сделать это так:

document.title = $("div.message", msg).text();

Объяснение: $('<div>a</div><div>b</div>') создает объект jQuery, содержащий два разных элемента <div>. Вы можете найти тот, который вы ищете, вызвав функцию filter, которая находит математические элементы в объекте jQuery, для которого вы вызываете его. (Не их дети)

$('<p><div>a</div><div>b</div><p>') создает объект jQuery, содержащий один элемент <p>, и этот элемент <p> содержит два элемента <div> в качестве дочерних элементов. Вызов $('selector', 'html') найдет всех потомков элементов в HTML, которые соответствуют селектору. (Но он не вернет корневой элемент (ы))

0 голосов
/ 28 января 2010

Это взломанный и не очень чистый, но он должен работать:

  1. добавить узел div и установить его html для вашего текстового сообщения,
  2. получить текст добавленного элемента и сохранить его в переменной
  3. уничтожить узел
  4. установить заголовок с содержимым переменной в шаге 2
...