JQuery:选择使用标记标签?

时间:2011-12-01 17:50:18

标签: javascript jquery html jquery-selectors html-parsing

我在页面中动态查找开放标记的字符串,并希望使用JQuery来获取open标记对应的元素的文本。

例如,假设这是我的页面:

<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() - &gt; By THOMAS L. FRIEDMAN。有没有一种简单的方法可以将开放标记标记转换为选择器?我应该用正则表达式解析吗?

编辑:我事先不知道我想要什么元素。我的代码浏览了整个页面,并以'<author id="monkey" class= "mainauthorstyle">'作为元素的开头。我事先不知道文字。我在任意网页上运行此代码。

3 个答案:

答案 0 :(得分:0)

author#monkey.mainauthorstyle

答案 1 :(得分:0)

以下是您的操作方法:http://jsfiddle.net/peduarte/MgbCX/

答案 2 :(得分:0)

我在理解你的问题时遇到了一些麻烦。如果您只想要文本,请使用以下内容:

$("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

您编辑后更新:

如果您能够确定要选择id为“monkey”和“mainauthorstyle”类的author元素的“text”,则只需要从这些信息位中构建一个jQuery选择器。从那里你可以在生成的jQuery对象上使用text()或html()方法来获取该元素的内容。

正如我上面的例子所示:

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

或     $( “作者#monkey.mainauthorstyle”)的HTML();

请注意,使用的选择器可能过度,因为您应该只需按其ID选择元素。

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