2014-01-25 31 views
0

我在想你們可能會有幫助。對於JQuery中的LOOP:解決我低效的代碼

我現在有數百行代碼,如下面的每個條目。什麼從小流1開始,在我的文件中變成了一團糟。

所以代碼現在從streamtitle1一直到streamtitle30。唯一改變的事情是

 $("#streamtitleXX").click(function(){ 
     $("#streamXX").show(); 
     and all other hide. 

這是進入的一個例子23.請幫助了有效的「無所謂」 LOOP。我會給你一個關於我的頁面。

$("#streamtitle23").click(function(){ 
$("#stream0").hide(); 
$("#stream23").show(); 
$("#stream1").hide(); 
$("#stream2").hide(); 
$("#stream3").hide(); 
$("#stream4").hide(); 
$("#stream5").hide(); 
$("#stream6").hide(); 
$("#stream7").hide(); 
$("#stream8").hide(); 
$("#stream9").hide(); 
$("#stream11").hide(); 
$("#stream10").hide(); 
$("#stream12").hide(); 
$("#stream13").hide(); 
$("#stream14").hide(); 
$("#stream15").hide(); 
$("#stream16").hide(); 
$("#stream17").hide(); 
$("#stream18").hide(); 
$("#stream19").hide(); 
$("#stream20").hide(); 
$("#stream21").hide(); 
$("#stream22").hide(); 
$("#stream23").hide(); 
$("#stream24").hide(); 
$("#stream25").hide(); 
$("#stream26").hide(); 
$("#stream27").hide(); 
}); 

THANKS

+1

如果你給那些顯示/隱藏的div你可以隱藏所有基於類,那麼只顯示你需要通過ID – kei

+0

一個感謝您的答覆常見的類。我喜歡FOR LOOP。我會在晚些時候嘗試。 – Mikey3Strings

+0

現在瞭解你們對普通班級的意思了,我可以試試這種方法。 – Mikey3Strings

回答

1

DEMO

$("[id^=streamtitle]").on('click', function() { 
    $("[id^=stream]:not([id^=streamtitle])").hide(); 
    var num = $(this).attr('id').replace('streamtitle',''); 
    $("#stream"+num).show(); 
}); 

...但我還是要說,一個普通類是要走的路。

+0

這是一個似乎爲我工作的人 – Mikey3Strings

+0

我覺得我很高興與這一個,在我的網站@ www.atomic-cockroach.com感謝你的工作削減信貸。 – Mikey3Strings

0
var XX = 23; 
for (var i=1; i <= 27; i++){ 
    if (i !== XX){ 
     $('#stream'+i.toString()).hide(); 
    } else { 
     $('#stream'+i.toString()).show(); 
    } 
} 
+0

'toString'調用是多餘的。 –

+0

不能讓它工作兄弟 – Mikey3Strings

0

如果你可以有相同的類所有流元素/ div的,那麼你可以隱藏所有hide()和只顯示你要如下圖所示

的一個

$("#streamtitleXX").click(function(){ $(".streamClass").hide(); $("#streamXX").show();});

希望這有助於

0

我願意付出所有的Y我們的信息流標題爲streamtitle課程,而您的所有信息流標題爲stream課程。

然後做這樣的事情。

$('.streamtitle').click(function() { 
    $('.stream').hide(); 
    $('#stream' + this.id.replace(/streamtitle/, '')).show(); 
}); 

演示http://jsfiddle.net/mg2kF/

0
$("[id^='streamtitle']").click(function(){ 
var shid='stream'+$(this).attr('id').replace('streamtitle',''); 
$('[id^="stream"]').hide();$('#'+shid).show(); 
}); 
0
** HTML ** 

<div title="Stream Title" id="streamtitle23" onclick="showChildStream('23');"></div> 
<div title="Stream Title" id="streamtitle24" onclick="showChildStream('24');"></div> 
<div title="Stream Title" id="streamtitle25" onclick="showChildStream('25');"></div> 

** Jquery ** 

function showChildStream(currentid) 
{ 
$("#stream"+currentid).show(); 
for(var i=0;i<28;i++){ 
if(i!=currentid) 
    $("#stream"+i).hide(); 
} 
}