2013-02-21 53 views
0

我有一个名为“测试”的div。这个div可以在同一个页面上出现一次或多次,里面有一个或多个标签。例如,一个页面可以有只有在特定条件为真时才运行jQuery函数

<div class="testing"> 
    <span>hello</span> 
</div> 

或者其他页面可以有

<div class="testing"> 
    <span>hello</span> 
    <span>hello again </span> 
</div> 

我想运行符合下列条件的“测试”的div jQuery的功能:

  • 如果“testing”div包含多个span标记,我只想运行该函数。
  • 我只想让函数在包含多个span标签的“testing”div上运行。

我该如何做到这一点?

+0

你有没有尝试过的东西已经? – greener 2013-02-21 18:14:44

+0

当你添加这些跨服务器端,只需添加一个CSS类到div。 – Dunhamzzz 2013-02-21 18:14:46

回答

0

把这个在你的函数:

if($('.testing span').length > 1) { /* relevant code here */ } 
+0

.size()是不推荐使用的方法。请参阅http://api.jquery.com/size/ – 2013-02-21 18:16:04

+0

@BradM谢谢。编辑。 – Marcus 2013-02-21 18:18:06

2

之前问的问题,尝试张贴你已经拥有的代码。这就是说...

$('div.testing span').length 

这将返回一个div内的span元素的数量与类测试。

0
  1. 写您的功能
  2. 检查跨度的测试(提示:if($('.testing').children('span').length)的数量
  3. 运行在你的if语句
0

试试这个“则”部分的各自功能

if($('.testing span').length > 1) { 

} 
+0

这看起来好像不会做OP所要求的。他需要为包含多个跨度的''test'div做些事情。例如,你如何使用这段代码将包含多个跨度的每个div的背景设置为红色,因为你没有对div的引用? – portlandrock 2013-02-21 18:42:41

0

试试看。将设置背景的部分替换为任何你想做的事情。

$(".testing").each(function(index, value) { 
    var spans = $(this).find("span"); 
    if(spans.length > 1){ 
     $(this).css("background-color", "red"); 
    } 
}); 
0

你想要的条件是相同的,所以用1个条件,你可以做这样的事情:

if($('.testing span').length > 1) console.log('more than one'); 

实例与函数

if($('.testing span').length > 1) myFunction(); 
相关问题