2012-04-19 154 views
0

我有以下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

回答

8
$('#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

6

$(selector).children()只返回選定標記的直接子。要認準的事再往下,您可以使用

$(selector).find(descendantSelector) 

,或者在你的情況,

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

編輯:沒有看到第二個/嵌套跨度。這些都應該工作。 JSFiddle

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

$('#WebPartCaptionWPQ2').parent().text(); 
0
$('#WebPartTitleWPQ2').find('span').html(); 

這應該讓包含在第一跨度此項目後的HTML。

編輯:我只是把再看看你貼的標記 - 您的跨度有一個ID或者是嵌套的第一區間中的另一個跨度?如果不是你的標記是搞砸了。