2011-04-17 164 views
1

我所擁有的是使用9i li項目的PHP生成的UL。每個人都有一個從1級到9級。jQuery簡單循環

我也有9個div生成的PHP也有從1到9類。我試圖使用jQuery,以便當有人點擊一個李項目,其相應的div得到顯示/ hidden ...

ie。點擊李3類,表演類的div 3.

我有這樣的:

for (var i = 1; i <= 9; i++){ 
    $("li." + i).click(function(){ 
     $("div." + i).toggle(); 
    }); 
} 

但是它不是相當的工作。任何人都可以看到爲什麼它可能不是?

<ul class="featureItems"> 

    <li class='1'>Seo</li> 
    <li class='2'>Social Media</li> 

    <li class='3'>Internet Marketing</li>  


    <li class='4'>Lead Generation</li> 
    <li class='5'>Appointment Setting</li> 
    <li class='6'>Telesales</li>   


    <li class='7'>Copyright</li> 
    <li class='8'>Promotions</li> 
    <li class='9'>Website Design</li>  

    </ul> 


<div id="featuredItem"> 
    <div class='1 featureText'>i'm seo text</div><div class='2 featureText'>i'm social media text</div><div class='3 featureText'>i'm internet marketing text</div><div class='4 featureText'>i'm lead generation text</div><div class='5 featureText'>i'm appointment setting text</div><div class='6 featureText'>i'm telesales text</div><div class='7 featureText'>i'm copyright text</div><div class='8 featureText'>i'm promotions text</div><div class='9 featureText'>i'm website design text</div> </div> 
</div> 

輸出HTML!

+0

你已經寫在代碼裏的$(document) 。準備()? – 2011-04-17 19:59:06

+0

請包含您的HTML代碼(示例),以使您的問題更清晰。 – 2011-04-17 20:02:03

回答

2

編輯2:這是解決它的答案:如果你的li■找多個類

$('li').click(function(evt) 
{ 
    $('div.' + $(this).attr('class')).toggle(); 
}); 

這是行不通的。如果這是一個問題,我會考慮使用其他信息來傳遞該信息,如HTML5 data屬性或rel屬性。

+0

我不太確定這是如何工作的?我只想要與同一班級的div切換,而不是li項目本身? – benhowdle89 2011-04-17 19:58:40

+0

我做了一個應該回答的編輯 - 我不確定爲什麼你需要''li'和'div'的類名,如果它們總是相同的話。 – 2011-04-17 20:00:31

+0

該divs arent兒童的李項目:)他們在一個單獨的UL – benhowdle89 2011-04-17 20:02:29

1

不知道這是否是您的問題,但用數字啓動標識符(在這種情況下類名稱,但ID也可能有此問題)幾乎總是一個壞主意。我建議你使用名稱c1,c2,c3,c4等。它可能是在你的代碼中的某個地方,數字名稱被轉換爲數字而不是字符串。

你可能會考慮更好的名字,但我認爲只要用字母'c'開頭的名字會有所幫助。

+0

youa are absuletly right,we use use so generic id like 1,2,3 ... – kobe 2011-04-17 20:04:23

1

的問題是,當你調用內部函數的點擊我的值是10 你需要一個封閉:

for (var i = 1; i <= 9; i++){ 
    (function (i){ 
     $("li." + i).click(function(){ 
      $("div." + i).toggle(); 
     }); 
    })(i) 
} 

http://jsfiddle.net/bicccio/prTH9/

+0

就是這樣。正在闡述它的過程中,但是你用一句話來形容它。 – 2011-04-17 20:24:58