选择儿童

问题描述:

我有以下HTML stucture:选择儿童

<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跨度的文本值:通过执行下一个WebPartTitleWPQ2

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

SO然后spans.length总是0.

我在做什么错了?这两个

编辑

做的两个值返回

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

结果blank

+1

你试过'$( “#WebPartTitleWPQ2”)。找到( “跨度”)' – Dutchie432 2012-04-19 20:55:11

+0

你能告诉我们的HTML完整TD节点? (包括任何结束标记。) – devstruck 2012-04-19 21:27:31

$('#WebPartTitleWPQ2 span').eq(1).text() 
+0

但是请注意,是'.EQ(1)'会选择第二个跨度(如果存在的话,要不然也不会选择任何内容),同时消除'.EQ(1)'会给所有跨度的文本。 – 2012-04-19 20:58:36

+0

好吧,但即使删除.eq(1)部分,我也只能使用选择器获取text()方法的空白值。 – dexter 2012-04-19 21:09:13

+0

没有跨度结束标记,因此它是空的。检查你的标记 – chepe263 2012-04-19 21:13:03

$(selector).children()只返回选定标记的直接子。要认准的事再往下,您可以使用

$(selector).find(descendantSelector) 

,或者在你的情况,

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

编辑:没有看到第二个/嵌套跨度。这些都应该工作。 JSFiddle

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

$('#WebPartCaptionWPQ2').parent().text(); 

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

这应该让包含在第一跨度此项目后的HTML。

编辑:我只是把再看看你贴的标记 - 您的跨度有一个ID或者是嵌套的第一区间中的另一个跨度?如果不是你的标记是搞砸了。