2013-02-21 88 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(); 
相關問題