JQuery: выбрать с помощью тегов разметки? - PullRequest
0 голосов
/ 01 декабря 2011

Я динамически нахожу строку открытого тега на странице и хочу использовать JQuery для получения текста элемента, которому соответствует открытый тег.

Например, предположим, что это моя страница:

<h1 class="articleHeadline">
  <NYT_HEADLINE  version="1.0" type=" ">
    The Arab Awakening and Israel
  </NYT_HEADLINE>
</h1> 
<author id="monkey" class="mainauthorstyle"> 
  <h6 class="byline">
    By 
    <a rel="author" href="http://topics.nytimes.com/top/opinion/editorialsandoped
    /oped/columnists/thomaslfriedma/index.html?inline=nyt-per" title="More Articles
    by Thomas L.Friedman" class="meta-per">
      THOMAS L. FRIEDMAN
    </a>
  </h6> 
</author>

Я нашел строку открытого тега '<author id="monkey" class= "mainauthorstyle">' и хочу получить $("author" id["monkey"] class["mainauthorstyle"]).text() -> By THOMAS L. FRIEDMAN.Есть ли простой способ превратить разметку открытого тега в селектор?Должен ли я просто разобрать его с помощью регулярного выражения?

Редактировать: Я не знаю заранее, какой элемент я хочу.Мой код просматривает страницу и видит '<author id="monkey" class= "mainauthorstyle">' в качестве начала элемента.Я не знаю буквальный заранее.Я запускаю этот код на произвольных веб-страницах.

Ответы [ 3 ]

0 голосов
/ 01 декабря 2011

Вот как вы это делаете: http://jsfiddle.net/peduarte/MgbCX/

0 голосов
/ 01 декабря 2011

У меня возникли проблемы с пониманием вашего вопроса. Если вы просто хотите текст, используйте следующее:

$("author#monkey.mainauthorstyle").text();

Если вы хотите выбрать элемент, только если автором является "THOMAS L. FRIEDMAN", тогда:

$("author#monkey.mainauthorstyle:contains('THOMAS L. FRIEDMAN')")
// See http://api.jquery.com/contains-selector/ for more info on the :contains() selector

ОБНОВЛЕНО ПОСЛЕ РЕДАКТИРОВАНИЯ:

Если вы можете определить, что хотите выбрать «текст» элемента author с идентификатором «monkey» и классом «mainauthorstyle», вам просто нужно создать селектор jQuery из этих битов информации. Оттуда вы можете использовать методы text () или html () в результирующем объекте jQuery, чтобы получить содержимое этого элемента.

Как показал мой пример выше:

$("author#monkey.mainauthorstyle").text();

или $ ( "# Автор monkey.mainauthorstyle") HTML ();.

Обратите внимание, что используемый селектор, вероятно, излишний, так как вы можете просто выбрать элемент по его идентификатору.

$("#monkey").text();
0 голосов
/ 01 декабря 2011

author#monkey.mainauthorstyle

...