0

我有以下html结构:

<td title="Test Info - Displays another Web page on this Web page. The other Web page is presented in an IFrame." class="ms-WPHeaderTd" id="WebPartTitleWPQ2">
  <h3 class="ms-standardheader ms-WPTitle" style="width: 778px; text-align: justify; overflow:  hidden; text-overflow: ellipsis;" name="MSOFixedWidthTitle" fixedWidth="800px">
     <nobr>
        <span>
         Text - I want this text           
           <span id="WebPartCaptionWPQ2"/>

因此,我试图通过执行以下操作来获取td带有 id的 span 下的文本值WebPartTitleWPQ2

var spans =  $("#WebPartTitleWPQ2").children("span")

SO 则spans.length始终为 0。

我究竟做错了什么?

编辑

正在做

  $("#WebPartTitleWPQ2").find("span").text()

导致返回两个值,这两个值都是blank

4

3 回答 3

8
$('#WebPartTitleWPQ2 span').eq(1).text()
于 2012-04-19T20:55:30.307 回答
6

$(selector).children()仅返回所选标签的直接子代。要进一步查找内容,您可以使用

$(selector).find(descendantSelector)

或者,在你的情况下,

$('#WebPartTitleWPQ2').find('span')

编辑:没有看到第二个/嵌套跨度。这些中的任何一个都应该起作用。 JSFiddle

$('#WebPartTitleWPQ2').find('span').eq(0).text();

或者

$('#WebPartCaptionWPQ2').parent().text();
于 2012-04-19T20:56:27.913 回答
0
$('#WebPartTitleWPQ2').find('span').html();

这应该得到包含在这个项目之后的第一个跨度中的 HTML。

编辑:我刚刚又看了看您发布的标记-您的跨度是否有 ID 或者是嵌套在您的第一个跨度中的另一个跨度?如果不是,你的标记就搞砸了。

于 2012-04-19T20:57:53.413 回答