对于Jquery中的LOOP:解决我的低效代码

时间:2014-01-25 06:51:32

标签: jquery for-loop solution

我以为你们可能会帮忙。

我现在每个条目都有数百行代码,如下所示。什么开始像一个小流1等,在我的文件中变成一团糟。

所以代码现在从streamtitle1一直到streamtitle30。

唯一改变的是
       $("#streamtitleXX").click(function(){
       $("#streamXX").show();
       and all other hide.

这是第23条的一个例子。请帮助一个有效的“无论如何”循环。我会在你的页面上给你一个大喊大叫。

$("#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();
});

感谢

6 个答案:

答案 0 :(得分:1)

DEMO

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

...但我仍然说一个普通的课程是要走的路。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

如果你可以为所有的流元素/ div提供相同的类,那么你可以用hide()隐藏它们,并只显示你想要的那个,如下所示

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

希望这有帮助

答案 3 :(得分:0)

我会为您的所有精选标题提供streamtitle课程,并为您的所有精选课程提供stream课程。

然后做这样的事情。

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

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

答案 4 :(得分:0)

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

答案 5 :(得分: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();
 }
}