2012-02-24 64 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