2012-02-24 51 views
1

下面是嵌套div標籤下包含兩個span標籤列表的html的截圖。兩組跨度列表是相同的。我如何獲得其中一個或另一個的span標籤的數量?注意只有最上面的div有一個id。我不能依賴jQuery(「#resultsContainer span」)長度,因爲我會在整個容器中獲得總跨度標籤。使用jQuery無法識別div下span標籤的數量

enter image description here

=====================

2/24/2012 - 最後的答案

long pageCountText = (long)Element.GetLongValueFromJQuery(driver, "$('#resultsContainer .pagination').first().children('span').length"); 

public static long GetLongValueFromJQuery(IWebDriver driver, string jQueryCode) 
{ 
    IJavaScriptExecutor js = driver as IJavaScriptExecutor; 
    return (long)js.ExecuteScript("return " + jQueryCode); 
} 

回答

2
jQuery("#resultsContainer > .pagination").first().children("span").length 

會給你第一個集合的數量。

+0

由於我正在執行Webdriver中JavaScriptExecutor的腳本,因此我必須將其保留在單行中,因此我會給出您的觀點。忘了在我的問題中提到這一點。在我刪除「>」之前,我無法讓你的工作。然後它似乎工作。所以我會給biziclop +1,因爲我偷了他的開始。你知道爲什麼「>」不起作用嗎?它可以是我的jQuery版本嗎?我正在使用1.5.1。 – MacGyver 2012-02-24 20:11:25

+0

這是我使用的代碼:long pageCountText =(long)Element.GetLongValueFromJQuery(driver,「return $('#resultsContainer .pagination')。first()。children('span')。length」); – MacGyver 2012-02-24 20:11:43

+0

我會upvote任何人的評論,知道爲什麼「>」沒有工作。與此同時,我會保持這個沒有答案,以獲得更多的意見 – MacGyver 2012-02-24 20:13:38

2
var spans = []; 

$('#resultsContainer span').parent() 
// OR $('#resultsContainer .pagination') 

.each(function(){ 
    spans.push({ 
    parent: this, 
    spanCount: $(this).children('span').length 
    }); 
}); 
1
var pages = []; 
$("#resultsContainer .pagination").each(function(index){ 
      pages.push($(this).children("span").length); 
}); 
$("body").append(pages.toString()); 

將得到每一個的長度,並把它放在一個數組爲您的觀賞樂趣。

+0

+1 ...這是很好的信息!不知道推送功能 – MacGyver 2012-02-24 20:16:55